我正在使用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
{
答案 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。