2

我正在尝试在 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 -> JUnit test 从 eclipse 运行 Test 类时,它工作正常,但是当我运行 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

4

2 回答 2

4

如果您在问题中提到的是正确The test class in src/main/test的,而不是简单的问题,则必须将原因测试定位到/src/test/java

于 2013-09-15T12:49:31.357 回答
1

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

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

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

于 2013-09-15T12:34:31.403 回答