首页 > 代码库 > 奇怪的Unrooted Tests错误

奇怪的Unrooted Tests错误

错误如图:

条件如下:

  1. Eclipse里的Maven工程。
  2. 使用JUnit4(这个是否必须不知,反正我的工程用的4)
  3. 修改某个Test类里的方法名,或者增加一个Test方法。

现象:

  • 在MyEclipse2014里面通过Run As JUnit的方式单独运行某个修改过名字或者新添加的Test方法。
  • 执行结果显示Unrooted Tests。
  • 或者在Eclipse里通过Run As JUnit的方式执行发生条件里提到的修改内容的Test Class。
  • 执行结果显示修改名字前的Test方法找不到。而新添加的测试方法根本不被执行。
  • 通过Eclipse的Project/Clean菜单重新编译工程也无效。

原因:

  • target/classes下测试类没有随着代码修改被刷新。
  • 可能是Eclipse的一个bug,以下是我无责任猜想:
  • Maven工程会把测试类生成到target/test-classes下
  • 出于未知的原因,某些情况下Eclipse会把Maven的设定当成编译的缺省路径。而不再刷新target/classes

解决方法:

    • Eclipse里用Run As/Maven Build的方式刷新一下工程。然后就神奇的解决了。
    • 用Eclipse的Project/Clean菜单重新Build整个工程也生效了。