Spock 框架创建 JUnit 测试。 这些应该能够通过 TestNG 运行。 但是,在 org.testng.junit.JUnit4TestMethod 类中有以下代码:
private static Method getMethod(Description desc) {
Class<?> c = desc.getTestClass();
String method = desc.getMethodName();
try {
return c.getMethod(method);
} catch (Throwable t) {
Utils.log("JUnit4TestMethod", 2,
"Method '" + method + "' not found in class '" + c.getName() + "': " + t.getMessage());
return null;
}
}
由于传入的描述包含 Spock 测试的文本(例如:“这是我的 spock 测试”)并且 Spock 破坏了测试名称,因此简单的“c.getMethod(method)”调用失败。 如果这个问题得到解决,那么 TestNG 也应该能够运行 Spock (JUnit) 测试。
我想知道为什么 TestNG 试图获得Method
进行测试。 这会给很多实现 JUnit 运行器的测试框架带来麻烦。
+1
+1
+1
+1
+1
+1
这张票现在有 2 年以上的历史了。 它甚至还没有分配任何人(EVER)! 多么完整的笑话。 如果有人甚至在考虑使用 TestNG,您应该知道预期的支持极差。 我只希望我们所有的测试都在 JUnit 中......
我们在空闲时间支持 testng,并修复了其他最重要的问题。
但是项目是开放的,为什么不尝试自己修复呢? 我们很乐意帮助您提出拉取请求。
最后,正如您所说,JUnit 也是一个解决方案(也是一个很好的项目)。
@blackduck-joe 我看过这个问题,但我不知道如何解决它。
但是您的SO thead需要更清楚,如果我理解得很好,您想运行 2 种测试(spock/junit 和 testng)。
然后,如果您使用的是 maven,您应该查看https://groups.google.com/forum/#!topic/spockframework/ -iys4ARQrxk 和/或运行 TestNG 和 JUnit 测试
从概念上讲,将 junit 添加到我当前的项目中的必要性将导致我在下一个项目中只使用 junit。
@rumatoest您可以利用空闲时间来调试/修复此@juherr所说,TestNG 是一个业余项目。
因为我已经想与 Spock 取得联系(总是渴望学习新东西),所以下次我可能会看看这个。
最有用的评论
@rumatoest您可以利用空闲时间来调试/修复此@juherr所说,TestNG 是一个业余项目。
因为我已经想与 Spock 取得联系(总是渴望学习新东西),所以下次我可能会看看这个。