2014-09-12 76 views
7

我正在迁移现有的项目以启动。我使用start.spring.io创建了一个全新的项目,并通过源代码进行了复制等等。所有东西都编译完成,但是当我做'mvn test'时,它编译类,但是只执行默认的'ApplicationTests'(由start .spring.io)。Spring Boot - 我的单元测试正在跳过

下面是行家输出的摘录:

[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ pendview --- 
    [INFO] Using 'UTF-8' encoding to copy filtered resources. 
    [INFO] skip non existing resourceDirectory C:\dev\pendview2\src\test\resources 
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ pendview --- 
    [INFO] Changes detected - recompiling the module! 
    [INFO] Compiling 26 source files to C:\dev\pendview2\target\test-classes 
    [INFO] 
    [INFO] --- maven-surefire-plugin:2.15:test (default-test) @ pendview --- 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] BUILD SUCCESS 
    [INFO] ------------------------------------------------------------------------ 

什么是更奇怪的是,如果我通过“-Dtest = TestAuthController”,那么它运行特定的单元测试:

[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ pendview --- 
    [INFO] Changes detected - recompiling the module! 
    [INFO] Compiling 26 source files to C:\dev\pendview2\target\test-classes 
    [INFO] 
    [INFO] --- maven-surefire-plugin:2.15:test (default-test) @ pendview --- 
    [INFO] Surefire report directory: C:\dev\pendview2\target\surefire-reports 

    (skipped output of AuthControllerTest for brevity) 

    ------------------------------------------------------- 
    T E S T S 
    -------------------------------------------------------Results : 

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

什么我做错了吗?春季启动会建立一个我不符合的绝对配置吗?

任何帮助将不胜感激! -Trey

回答

12

Spring Boot配置Surefire插件运行名称以TestTests结尾但不以Abstract开头的所有测试类。你可以看到这个configuration in the spring-boot-starter-parent pom。如果您的测试课程名称为TestAuthController,那么它与此配置不匹配。将其重命名为AuthControllerTestAuthControllerTests应该可以解决您的问题。

1

似乎对我来说,Maven surefire插件存在一些问题,当它没有检测到测试时,如果您的测试类名称不以Tests后缀结尾。 :-)

1

在控制台/终端试试这个命令:

MVN全新安装

但首先导航到你的测试目录。 如果你不会不运行测试,使用这个命令:

MVN全新安装-Dmaven.test.skip

0

似乎安迪的回答应春引导2.X.更新现在我无法在任何地方看到surefire配置。对这个公约的抱怨可能太多了。