- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JUnitCore 的 run(junit.framework.Test test)
为 JUnit 测试用例创建自定义测试运行器并传入ClassName.suite()
。我的测试运行,但返回的结果是 null
。似乎对象没有在 setUp()
中初始化方法原因setUp()
显然从未像它应该的那样被调用,即使使用 @Before
注解。如果我实例化每个测试方法中所需的每个对象,则测试成功。然而,这种方法很乏味,并且违背了测试类的目的。这种行为正常吗? JUnit 是否有更好的测试运行程序可以反射(reflect)与 Eclipse 中的测试运行程序相同的行为?谢谢。
这是运行者的代码:
public class TestRunner
{
Result res = new Result();
String results = new String();
JUnitCore runner = new JUnitCore();
protected TestRunner()
{
}
public String runReport(Test input)
{
System.out.println(input.toString());
res = runner.run(input);
String testClass = "Class: ";
String testFailCt = "Failure Count: ";
String testFalures = "Failures: ";
String testRunCt = "Runs: ";
String testRunTm = "Run Time: ";
String testSuccess = "Success: ";
String newln = "\n";
results += testClass + input.getClass() + newln;
results += testFailCt + res.getFailureCount() + newln;
results += testFalures + newln;
List<Failure> failures = res.getFailures();
int i = 0;
for (Failure x: failures)
{
i++;
results += i +": " + x + newln;
}
results += testRunCt + res.getRunCount() + newln;
results += testRunTm + res.getRunTime() + newln;
results += testSuccess + res.wasSuccessful() + newln;
return results;
}
}
以下是runReport()
的方法方法正在从另一个类调用:
runner.runReport(TestClassName.suite());
我应该将什么传递给run()
这样setUp()
每次测试之前都会隐式调用?我知道通过套房不会这样做。因此,我只是更改了我的测试用例,以便在每个测试中实例化所有必要的对象。
最佳答案
... setUp() apparently is never called as it should, even with the @Before annotation.
JUnit 版本 4 有注释支持 - 我认为 junit.framework 表明您正在使用版本 3。如果您使用 JUnit 3 TestRunner 运行 JUnit 4 测试,您可能会发现以下感兴趣的文章:
JUnit Test Runner that creates tests just before running them
JUnit FAQ - 参见“编写测试”段落。 3.
祝你好运!
关于java - JUnitCore run() 方法在每次测试之前不会隐式调用 setUp(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3527235/
我是一名优秀的程序员,十分优秀!