当前位置:  开发笔记 > 编程语言 > 正文

无根测试

如何解决《无根测试》经验,为你挑选了4个好方法。

在Eclipse中运行我的所有测试(Eclipse 3.4'Ganymede')时,在"Unrooted Tests"下列出了一个测试.我正在使用Junit 3.8,这个特殊的测试扩展了TestCase.我认为这个测试和其他测试之间没有任何区别.我不记得在Eclipse 3.3(Europa)中发生这种情况.

澄清:

我们还没有转移到JUnit 4.0,所以我们没有使用注释.我也用Google搜索,似乎大多数人都遇到了JUnit 4的问题,但我没有看到任何解决方案.此时测试通过本地和CruiseControl传递,所以我并不过分担心,但很好奇.

但是,当我第一次看到这个时,它是在一个失败的测试中,只有在与其他测试一起运行时才会失败.这让我陷入了兔子洞,寻找解决我从未找到的"无根"问题的解决方案.最终我发现了另一个没有正确拆除的测试的罪魁祸首.

我同意,它看起来像Eclipse问题.



1> ra9r..:

最后我找到了解决方案.问题是您没有使用注释定义测试用例,但仍然是"旧方法".只要转换为使用注释,您就可以再次运行一次测试.

下面是一个基本测试现在应该使用注释的示例:

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);
  }
}


我使用注释来做,但我仍然遇到同样的问题.在运行单个测试之前,ecllipse将所有其他测试作为无根测试运行我希望它运行.

2> Bob..:

我也收到了"无根测试"错误消息,它神奇地消失了.我相信这是因为我使用Eclipse和Maven项目.当我向Test类添加一个新方法并给它@Test注释时,当我尝试使用"Run as Junit test"菜单选项运行该方法时,它开始收到错误消息; 然而,一旦我运行了maven构建,无根测试消息就消失了,我相信这是未来问题的解决方案.

运行maven构建,因为它将刷新JUnit正在使用的类.



3> laz..:

如果您的类将TestCase扩展到其层次结构中的某个位置,则必须使用运行配置下拉列表中列出的JUnit 3测试运行器.使用JUnit 4 runner(默认情况下我认为)会导致出现无根测试现象.



4> Zoltán..:

我收到此错误是因为我重命名了我的测试方法,然后尝试通过单击相同的运行配置在Eclipse中运行测试 - 引用现在不存在的旧方法.


这也是我的问题.转到`Run Configurations ...`,找到`JUnit`下的条目,点击'Search ...`by`Test method`并选择`(所有方法)`(或你想要运行的任何方法).也许重命名运行配置,这样你就不会忘记它是哪一个.
推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有