我想知道在执行TestNG时,与TestNG ant任务有多不同?原因是我在尝试运行扩展JUnit测试库的TestNG测试时看到了一致的行为差异(这是在此处描述的TestNG中运行JBehave测试的变通方法:http://jbehave.org/documentation/faq/)。 Surefire错误地将我的测试检测为JUnit测试(可能是因为它的基础是TestCase),而Ant任务运行完美。任何人都可以深入了解TestNG如何处理这两种情况吗?
测试如下:
public class YourScenario extends JUnitScenario {
@org.testng.annotations.Test
public void runScenario() throws Throwable {
super.runScenario();
}
}
答案 0 :(得分:3)
简短的回答是,ant任务是TestNG发行版的一部分,因此它是我们测试的一部分,我始终确保它与TestNG保持同步。
Surefire是作为Maven项目的一部分开发的,因此它有时会落后(就像你一样,我在运行Surefire测试时遇到错误,从命令行运行时没有发生/蚂蚁/ Eclipse的)。
我会把这个问题提交给Maven团队注意,也许他们还有更多要说的。
答案 1 :(得分:1)
这看起来是一个已知的错误:http://jira.codehaus.org/browse/SUREFIRE-575。
您是否尝试过使用TestNG XML套件定义而不是Surefire的自动测试用例检测?