在 Eclipse(Eclipse 3.4 'Ganymede')中运行我的所有测试时,“Unrooted Tests”下会列出一项测试。我正在使用 Junit 3.8,这个特定的测试扩展了 TestCase。我看不出这个测试和其他测试有什么区别。我不记得在 Eclipse 3.3 (Europa) 中看到过这种情况。
澄清:
我们还没有迁移到 JUnit 4.0,所以我们没有使用注解。我也用谷歌搜索,似乎大多数人都遇到了 JUnit 4 的问题,但我没有看到任何解决方案。此时测试在本地和 CruiseControl 中都通过了,所以我并不过分担心,但很好奇。
不过,当我第一次看到这个时,它是在一个失败的测试中,只有在与其他测试一起运行时才会失败。这使我陷入了寻找解决方案来解决我从未找到的“无根”问题的方法。最终我在另一个没有正确拆除的测试中找到了罪魁祸首。
我同意,这似乎是一个 Eclipse 问题。
最佳答案
我终于找到了解决方案。问题是您没有使用注释定义您的测试用例,而是仍在使用“旧方式”。一旦您转换为使用注释,您就可以再次运行一个测试。
这是一个使用注释的基本测试现在应该是什么样子的示例:
import static org.junit.Assert.*; // Notice the use of "static" here
import org.junit.Before;
import org.junit.Test;
public class MyTests { // Notice we don't extent TestCases anymore
@Before
public void setUp() { // Note: It is not required to call this setUp()
// ...
}
@Test
public void doSomeTest() { // Note: method need not be called "testXXX"
// ...
assertTrue(1 == 1);
}
}
关于java - 无根测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/120889/