我为我的Fitnesse测试用例创建了JUnit
- 测试:
import org.junit.runner.RunWith;
import fitnesse.junit.FitNesseRunner;
@RunWith(FitNesseRunner.class)
@FitNesseRunner.Suite("mysuite")
@FitNesseRunner.FitnesseDir(".")
@FitNesseRunner.OutputDir("./target/fitnesse-results")
public class RunFitnesseTestMySuite {
}
现在我可以像Eclipse中的普通JUnit
测试用例一样执行此测试。
然而,maven
完全忽略了这个测试。我的所有其他JUnit
都是由maven执行的,而不是这个特定的Fitnesse
测试。
这对我来说很奇怪,因为@RunWith
是一个普通的JUnit
注释,所以我希望maven也可以运行这些测试。
有什么想法吗?
答案 0 :(得分:1)
您可能尚未配置surefire以使用非默认名称运行测试。您的测试类与surefire的默认值不匹配,因此只有在将测试配置为显式运行时才会运行。来自surefire documentation:
默认情况下,Surefire插件会自动包含所有测试 具有以下通配符模式的类:
- " ** /试验*的.java" - 包括其所有子目录和所有Java 以" Test"开头的文件名。
- " ** / * Test.java" - 包括所有 它的子目录和所有以" Test"。
结尾的Java文件名- " ** / * Tests.java" - 包括其所有子目录和所有Java 以" Tests"。
结尾的文件名- " ** / * TestCase.java" - 包括所有 它的子目录和所有以" TestCase"结尾的Java文件名。
如果测试类不遵循任何这些命名约定,那么 配置Surefire插件并指定要包含的测试。
在你的情况下,我希望你想使用类似的东西:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<includes>
<include>**/*Suite.java</include>
</includes>
</configuration>
</plugin>