使用maven运行时跳过Spring测试

时间:2013-09-15 10:56:12

标签: spring unit-testing maven testing junit

我正在尝试在Maven构建或安装的Spring项目上运行JUnit测试。

src / main / test中的测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
        "classpath:mvc-dispatcher-servlet.xml", 
        "classpath:appContext.xml",
        "classpath:databaseContext.xml"})
    public class Test {
        @Autowired
        private EventService evtService;

        @org.junit.Test
        public void test1(){
            List<String> eventNames = evtService.getEventNames();
            Assert.assertTrue(eventNames.size() > 0);
        }
    }

在POM中:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.7.2</version>
    <configuration>
        <parallel>classes</parallel>
        <threadCount>10</threadCount>
    </configuration>
</plugin>

当我使用Run as - &gt;从eclipse运行Test类时JUnit测试它工作正常,但是当我运行Maven Install时,我得到:

 T E S T S
-------------------------------------------------------
Concurrency config is parallel='classes', perCoreThreadCount=true, threadCount=10, useUnlimitedThreads=false
There are no tests to run.

Results :

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

版本:JUnit:4.11;春天:3.2.3.RELEASE

2 个答案:

答案 0 :(得分:4)

如果您在问题中的提及是正确的The test class in src/main/test,那么这是一个简单的问题,因此必须将原因测试放在/src/test/java中。

答案 1 :(得分:1)

您是否从某个父级继承此POM?因为surefire-plugin的此配置可能在您的父级中,导致您的测试被跳过。

<configuration>
    <skipTests>true</skipTests>
</configuration>

因此,您需要从父项中删除skipTests属性,或者在子项目中明确允许测试。