如何让Maven打印出失败的测试名称?

时间:2013-07-16 14:06:01

标签: spring maven junit maven-surefire-plugin

我正在使用Maven 3.0.3,JUnit 4.8.1和Spring 3.1.1.RELEASE。我有这样配置的Surefire插件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.14.1</version>
    <configuration>
        <reuseForks>false</reuseForks>
        <argLine>-Xmx2048m -XX:MaxPermSize=512M</argLine>
    </configuration>
</plugin>

我注意到当我的单元测试由于IllegalStateExceptions而失败时,Maven从未打印出在执行结束时失败的测试名称。相反,我会看到

mvn clean install
...
Tests in error:
? IllegalState Failed to load ApplicationContext
? IllegalState Failed to load ApplicationContext
? IllegalState Failed to load ApplicationContext
? IllegalState Failed to load ApplicationContext

如何让Mavne打印出有关测试失败的更多具体信息?现在我必须深入了解surefire-reports目录,找出失败的原因。我的大多数JUnit测试都是这样的:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-context.xml" })
public class CleverTeacherServiceTest extends AbstractImportServiceTest
{

1 个答案:

答案 0 :(得分:1)

我认为在测试运行之前,您的Spring测试配置失败了。您通常应该看到控制台中列出的失败测试,​​例如:

  
     

T E S T S

     

运行TestSuite   ..   测试运行:234,失败:1,错误:0,跳过:0,经过的时间:7.019秒&lt;&lt;&lt;失败!   fooTest(BarTest)经过的时间:0.011秒&lt;&lt;&lt;失败!   fooTest(BarTest.java:23)

     

结果:

     

测试失败:    BarTest.fooTest:23 null

     

测试运行:234,失败:1,错误:0,跳过:0

您可以运行测试,设置surefire插件属性useFile == false,以将所有插件输出发送到控制台。我不会在pom文件中配置它,但是像这样运行它:

mvn -Dsurefire.useFile=false clean test

有关配置信息,请参阅Surefire Plugin docs