【发布时间】:2014-03-23 13:30:07
【问题描述】:
strong text我有一个项目同时包含 Junits 和 TestNG 测试。
有人建议我从 TestNG 配置文件中加载 Junits,如下所述: http://testng.org/doc/documentation-main.html#junit(并相应地更新 pom.xml 中 testNG 的依赖项),但它对我不起作用。
根据这里:Maven does not find JUnit tests to run,mvn 根据类名的后缀扫描测试以运行junits(即名称以*test.java、tests.java 等结尾的类)。 问题是配置 TestNG 时,Junits 不运行。
为此,我的问题是:
可以明确要求 maven 运行某些 Junit 吗? 当涉及到 TestNG 时,它如何仍然成立? (因为这里有一个讨论,两者不能一起运行:http://jira.codehaus.org/browse/SUREFIRE-377 但我猜它有点过时了)。
为此,我使用 mvn 2.2.1(并且不允许更改版本:))
testNg.xml 文件:
<suite name="VcopsCommonSuite" verbose="1">
<test name="TestNG">
<classes>
<classes name="<some path>.<testNG: test class1>"/>
<classes name="<some path>.<testNG: test class2>"/>
</classes>
</test>
<test name="JUnit" junit="true">
<classes>
<classes name="<some path>.<junit: test class1>"/>
<classes name="<some path>.<junit: test class2>"/>
</classes>
</test>
</suite>
在我的 pom.xml 文件中,依赖配置如下:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.1</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
【问题讨论】:
-
第一次提示 Maven 2.2.1 尽快负责此更新。除此之外,您是否遵循正确位于
src/test/java中的命名约定 (*Test.java) 等?此外,我建议决定使用 JUnit 进行单元测试或 TestNG,但不能同时使用两者。我的建议是使用 TestNG 进行集成测试等。顺便说一句:你能显示你的 pom 文件吗? -
@khmarbaise - 我完成了上述所有操作,但没有任何变化。显然 Maven 版本太旧,根本不支持该功能。
-
@Joe - 不是重复。引用的线程只处理运行的junits。这个问题询问如何将它们与 TestNg 测试一起运行。
-
你为什么从 TestNG 中排除 junit ? Maven 2.2.1 也可以。问题是您使用哪个 maven-surefire-plugin 版本?