Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用maven运行junit测试套件并接收类似于单个测试的摘要输出?_Java_Maven_Unit Testing_Junit_Maven Surefire Plugin - Fatal编程技术网

Java 如何使用maven运行junit测试套件并接收类似于单个测试的摘要输出?

Java 如何使用maven运行junit测试套件并接收类似于单个测试的摘要输出?,java,maven,unit-testing,junit,maven-surefire-plugin,Java,Maven,Unit Testing,Junit,Maven Surefire Plugin,当使用maven的surefire插件运行各个junit测试类时,我会得到类似于以下的输出,其中显示每个测试类的测试结果: ------------------------------------------------------- T E S T S ------------------------------------------------------- Running my.package.MyTestClass1 Tests run: 10, Failures: 0, Error

当使用maven的surefire插件运行各个junit测试类时,我会得到类似于以下的输出,其中显示每个测试类的测试结果:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running my.package.MyTestClass1
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.50 sec - in my.package.MyTestClass1
Running my.package.MyTestClass2
Tests run: 15, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.25 sec - in my.package.MyTestClass2
Running my.package.MyTestClass3
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.74 sec - in my.package.MyTestClass3
...
Results :

Tests run: 133, Failures: 0, Errors: 0, Skipped: 1
但是,如果我通过一个测试套件类运行相同的类,我会得到与以下类似的输出,其中测试结果会针对整个套件进行聚合:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running my.package.AllTests
Tests run: 133, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 32.44 sec - in my.package.AllTests

Results :

Tests run: 133, Failures: 0, Errors: 0, Skipped: 1

如何通过测试套件类运行这些类,但仍然可以看到套件中定义的每个测试类的测试结果信息?

请看:在提问之前,我已经阅读了这些页面。如果定制的runlistener是实现这一点的唯一方法,那么我想这个问题将变成一个以junit为中心的问题。从表面上看,如果不编写自定义代码,这应该是一个相当容易解决的问题,但也许不是。使用套件而不是让Maven sure fire插件完成工作的原因是什么?我们使用套件类的主要原因是允许我们以各种方式对测试类进行分组,并确保它们在这些组中以可预测的顺序运行。例如,在给定的项目中,我们可能希望在自动化构建的主要部分运行一小部分测试类(冒烟测试),但在构建后测试运行期间运行一个更大的超集。事实上,在构建的主要部分完成后,我们可以在不同的机器上并行运行不同的测试组。我认为我看到的行为是作为maven surefire插件一部分的Junit运行侦听器的副产品。我配置了自己的运行侦听器,并按预期调用了它,但它的所有输出都进入/target/surefire reports/-output.txt,而不是stdout。也许我需要做的是替换surefire使用的运行侦听器,但我认为没有简单的方法来配置它,因为“listener”配置属性旨在向surefire添加自定义运行侦听器,而不是替换surefire自己的运行侦听器。