在Eclipse中运行单个JUnit测试


85

如果我有一个包含多个测试的测试套件,那么当我尝试从代码编辑器的上下文菜单或从JUnit视图运行单个单元测试时,它似乎坚持始终运行整个套件,而不是始终运行整个套件。单项测试。有没有一种方法可以禁用以更改此行为,以便我可以要求运行该测试,并且只能进行测试。


11
如果您通过选择答案旁边的绿色标记来选择最佳答案,那就太好了。
guerda'2

Answers:


96

在包浏览器中,展开课程。它应该显示所有方法。右键单击要运行的一种方法,然后从上下文菜单中选择“运行方式-> JUnit”(已使用Eclipse 3.4.1进行了测试)。同样,在JU​​nit结果视图中的单个条目上选择“运行”,以相同的方式重新运行测试。


3
不幸的是,这仅适用于直接在该类中实现的测试方法。它不适用于继承的@Test方法。
Christopher Barber

1
请注意,看来您必须单击方法名称。在方法内部单击将运行整个类。(或者至少这就是我的行为方式。)
浮华

它只能从这个特定的“程序包浏览器”工作,这在快速找到您要测试的方法时非常不方便。甚至比调试器接缝要跳过其他方法-这会花费额外的时间。必须有更好的方法...
Macilias 2015年

而且它也很脆弱...现在蚀决定以这种方式运行时不跳过其他测试:(
Macilias 2015年

26

我知道的最快方法:

  1. Ctrl+ Shift+ (将光标移至当前方法声明),
  2. Alt+ Shift+ x(或d用于调试),然后按t“ Run JUnit Test”的热键),
  3. 检查测试结果,
  4. Alt+返回到之前的代码行。

如果要运行所有测试,则可以跳过步骤1和4。


13

在Eclipse 3.5中,可以通过将测试运行程序更改为JUnit 3来解决此问题。这仅适用于JUnit 3测试,不适用于JUnit 4测试。您可以通过执行以下操作来更改测试运行器:

  1. 右键单击“大纲”资源管理器中的一种测试方法
  2. 选择运行方式->运行配置
  3. 在“测试”标签上,选择“运行单个测试”
  4. 在“测试运行器”下拉列表中,选择“ JUnit 3”

它也可能在其他版本中工作。


好决定!在Eclipse 3.6.0(Helios)中,将运行配置对话框中的“ Test Runner”更改为“ JUnit 3”对我有用。现在,我可以在JUnit测试中运行一个方法。FWIW,我从未遇到过运行单个JUnit 3或4测试类的问题
亚当·蒙森

完美,这对我也起作用。上面的答案似乎没有更多的支持,甚至没有。
dreza 2011年

12

在带有JUnit 4.8.2的Eclipse Indigo中,这是可能的。右键单击要在Outline窗格中单独进行单元测试的方法,然后选择Run As -> JUnit Test

您甚至可以在源代码编辑器中选择右键单击“测试方法”名称,然后选择Run As -> Junit Test


1
似乎会测试该特定测试用例。但是,此后,它仍继续使用其他测试用例。
lwpro2

@ lwpro2您必须使用JUnit 4(注释)来测试单个测试用例。JUnit 3(扩展TestCase)仍将运行所有相关测试。
AnthonyW

1
wulfgar.pro我让@ lwpro2知道,如果您正在使用JUnit 4运行程序运行JUnit测试(例如,由于您使用的是JUnit 4.8.2),但是您的测试仍在扩展TestCase,则您将无法运行单个自行测试。您必须使用JUnit 3运行程序,或者将测试转换为使用批注。
AnthonyW

感谢您的评论。但是,我在SpringJunit4ClassRunner中使用Junit4。无论如何,没什么大不了的。快速注释掉注释。
lwpro2

这个答案最简单
Jackson Tale 2015年

9

不要使用Strg+F11而是热键Alt+ Shift+ X- > T
然后Eclipse将执行当前打开的文件作为JUnit测试。绿色的播放按钮将仅运行最后选择的运行配置。

对我来说,它运作良好Alt+ Shift+ X> - T


谢谢。但是请说您正在开发正在通过单元测试进行测试的类。修改类时,如何在不将窗口切换到UnitTest文件的情况下运行其相应的UnitTest?
bibstha 2012年

@bibstha您可以使用Ctrl + 3,然后键入“重新运行”。这使您可以重新运行最后一个JUnit测试用例。在窗口->首选项->常规->键下,您可以为此操作分配自己的快捷方式。我认为Ctrl + Shift + F11会比较合适。
guerda'3

9

我将通过使用一种高效的仅键盘方法来添加其他功能,该方法允许您调试单个单元测试(方法)。

使用以下任一方法将光标移至方法名称

  • Ctrl+ Shift+Up
  • Ctrl+ Shift+Down
  • Ctrl+o然后输入方法名称

将光标放在方法名称上(或之前):

  • Alt+ Shift+ D-> T(除错)
  • Alt+ Shift+ X-> T(运行)

运行测试后,您可以通过执行以下操作返回到光标所在的位置:

Alt+Back

您几乎可以通过以下方式获得类似于REPL的行为:

Ctrl+ Shift+UpAlt+ Shift+ X->TAlt+Back

您还可以快速设置一个断点:

Ctrl+ Shift+B


3

右键单击文件中测试方法名称的某个位置,然后选择“运行”->“ Junit测试”。我一直在用Kepler和JUnit 4来做。


2

我遇到了其他人使用Eclipse 3.4.1和JUnit 4测试运行程序的相同问题-无法运行单个测试。但是我在其他地方找到了解决问题的建议。我的测试类仍在扩展junit.framework.TestCase。当我停止扩展TestCase时,一切工作正常,并且能够使用JUnit 4测试运行器运行单个JUnit测试。当然,我需要JUnit 4批注将静态导入用于assert方法,但是我已经做到了-我只是没有删除TestCase继承。


1

如果您在一个以上的文件中有多个测试,并且只想运行特定文件中的测试,则可以右键单击该文件,然后选择“运行方式-> junit test”。现在,如果您只想运行一个包含在具有多个测试的文件中的测试,我的猜测是(我在这里未安装eclipse)Outline视图将列出该文件的所有测试方法,您也许能够右键单击一个测试方法,然后将其作为JUNit测试执行。

希望能帮助到你。


1

仅运行一种测试方法。
在(包资源管理器或项目资源管理器)中展开类。它应该显示所有方法。右键单击要运行的一种方法,然后从上下文菜单中选择“运行方式-> JUnit”。
在此处输入图片说明


0

对我来说,它在Eclipse 3.4.2中也不起作用,尽管它在以前的发行版中也起作用(我尝试从package Explorer运行单个方法,从junit视图运行单个junit测试)


在Eclipse 3.4.2中,从Package Explorer运行单个方法/测试对我来说很好。
Volker Stolz

0

我同意3.4.2不再像以前的版本那样工作。从JUnit视图中右键单击一组测试中的单个测试,然后执行该测试。在最新版本中,它坚持始终运行所有它们。当然,该视图确实会运行您首先单击的测试,并将其余的转储到名为“ Unrooted Tests”的汇总中。如果有人发现了这个问题,我想知道如何解决它。


0

在这里阅读一些评论,似乎您可能会对在更改时更改的代码运行测试感兴趣,而不会失去对正在处理的代码的关注。有一个Eclipse插件可以做到这一点。见无限

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.