在Eclipse中是否可以运行增量/自动化JUnit测试?

8

Eclipse支持增量编译。如果我保存源文件,它会编译修改过的文件。

在这种增量编译之后,是否可以运行同一包中的JUnit测试,并在错误视图中显示失败。然后我就能够在同一视图中看到JUnit测试失败和编译错误,无需额外操作。有没有插件可以实现这个功能?


1
我认为你很快会发现这样的功能很烦人,或者会减慢你的速度。 - Stephen C
它应该只运行保存的类的测试。如果单元测试运行时间比编译器长,则不是单元测试,而是功能测试。您应该将单元测试和功能测试分开。 - Horcrux7
3个回答

9
你需要查看这些插件:
  • JUnit Max:不免费,由TDD实践背后的Kent Benk开发;
  • MoreUnit:免费,但基本上是为了帮助你编写测试用例;
  • Infinitest:现在免费,此插件专门用于运行与您刚刚修改的文件相关的测试。
因此根据您的需求,我建议您安装MoreUnit和Infinitest插件。

上次我查看时,Infinitest是免费的,但仅限非商业用途。现在看起来它完全免费了。好消息,谢谢! - Tyler
@MatrixFrog 是的,确实如此。我的一些前同事(现在在 algodeal 工作 - https://beta.algodeal.com/)正在开发这个插件,并将其免费提供,在 GitHub 上托管。 - Romain Linsolas

2

使用ExternalToolBuilder

它可以通过源代码修改触发。

有Eclipse定制功能(集成外部工具构建器)可能满足您的需求。但需要额外的工作来编写我从未使用过的脚本。自动化测试用例不是一个方便的方式,至少在Eclipse中单击以查看绿色条就足够了:)


我们大约有10万个JUnit测试。我想只运行与当前类相关的子集。这次运行应该大约为一秒钟或更短。手动选择测试并设置所需的命令行参数以进行模拟将消耗很多时间,并且在许多情况下会被遗忘。 - Horcrux7
JUnit4 提供了丰富的选择来运行所有测试用例的子集。使用:@RunWith(Suite.class) @Suite.SuiteClasses({ A.class, B.class, ... }) - 卢声远 Shengyuan Lu

0

您可以使用Alt+Shift+X,T运行项目中的所有测试。我认为,如果再自动化程度更高,可能会对性能造成严重影响。增量编译最多一次只编译一个文件,但您要运行的是潜在的数百个测试。


我不想运行项目的所有测试。我只想运行与保存类相关的测试。我们有大约10万个JUnit测试。这将运行太长时间。 - Horcrux7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接