【发布时间】:2010-10-13 09:02:54
【问题描述】:
如果我有一个包含多个测试的测试套件,当我尝试从代码编辑器的上下文菜单或 JUnit 视图运行单个单元测试时,它似乎坚持始终运行整个套件,而不是单一的测试。有没有办法禁用更改此行为,以便我可以要求运行它,并且只有那个,测试。
【问题讨论】:
-
如果您通过检查答案旁边的绿色标记来选择最佳答案,那就太好了。
如果我有一个包含多个测试的测试套件,当我尝试从代码编辑器的上下文菜单或 JUnit 视图运行单个单元测试时,它似乎坚持始终运行整个套件,而不是单一的测试。有没有办法禁用更改此行为,以便我可以要求运行它,并且只有那个,测试。
【问题讨论】:
在包资源管理器中展开类。它应该向您展示所有方法。右键单击要运行的一种方法,然后从上下文菜单中选择 Run As -> JUnit(刚刚使用 Eclipse 3.4.1 进行了测试)。同样在 JUnit-results 视图中的单个条目上选择“运行”以重新运行测试以相同的方式工作。
【讨论】:
我知道的最快方法:
如果您想运行所有测试,您可以跳过第 1 步和第 4 步。
【讨论】:
在 Eclipse 3.5 中,您可以通过将测试运行程序更改为 JUnit 3 来解决此问题。这仅适用于 JUnit 3 测试,不适用于 JUnit 4 测试。您可以通过执行以下操作来更改测试运行器:
它也可以在其他版本中使用。
【讨论】:
这在带有 JUnit 4.8.2 的 Eclipse Indigo 中是可能的。在Outline 窗格中右键单击要单独进行单元测试的方法,然后选择Run As -> JUnit Test。
您甚至可以有选择地在源代码编辑器中右键单击测试方法名称并选择Run As -> Junit Test。
【讨论】:
不要使用 Strg+F11 而是使用热键 Alt+Shift+X -> T.
然后 Eclipse 会将当前打开的文件作为 JUnit 测试执行。绿色的播放按钮只会运行最后选择的运行配置。
对我来说,它适用于 Alt+Shift+X -> T。
【讨论】:
我将添加一个高效率的键盘唯一方法,允许您调试单个单元测试(方法)。
使用任一方法将光标移动到方法名称
一旦您的光标位于方法名称上(或在它之前):
运行测试后,您可以通过以下操作返回光标所在的位置:
Alt+返回
您几乎会通过以下方式获得类似 REPL 的行为:
Ctrl+Shift+Up 和 Alt+Shift+X -> T 和 Alt+Back
你也可以快速设置断点:
Ctrl+Shift+B
【讨论】:
右键单击文件中测试方法名称的某处,然后选择“运行”->“Junit 测试”。我一直都在使用 Kepler 和 JUnit 4。
【讨论】:
我遇到了其他人在使用 Eclipse 3.4.1 和 JUnit 4 测试运行程序时遇到的同样问题——无法运行单个测试。但我在其他地方找到了解决问题的建议。我的测试类仍在扩展 junit.framework.TestCase。当我停止扩展 TestCase 时,一切正常,我能够使用 JUnit 4 测试运行器运行单个 JUnit 测试。当然,我需要 JUnit 4 注释对 assert 方法使用静态导入,但我已经这样做了——我只是没有删除 TestCase 继承。
【讨论】:
如果您在多个文件中有多个测试,并且您只想运行特定文件中的测试,您可以右键单击该文件,然后选择运行方式 -> junit test。 现在,如果您只想运行一个包含许多测试的文件中的测试,我的猜测是(我没有在此处安装 eclipse)大纲视图将列出文件的所有测试方法,您可能能够右键单击单个测试方法并将其作为 JUNit 测试执行。
希望对你有帮助。
【讨论】:
对我来说,它在 Eclipse 3.4.2 中也不起作用,尽管它在以前的版本中起作用(我尝试从包资源管理器运行单个方法并从 junit 视图运行单个 junit 测试)
【讨论】:
我同意关于 3.4.2 不再像以前版本那样工作的观点。在您可以从 JUnit 视图中右键单击一组测试中的单个测试并仅执行该测试之前。在最新版本中,它坚持始终运行所有这些。当然,该视图确实运行了您首先单击的测试,并将其余部分转储到名为“Unrooted Tests”的汇总中。如果有人知道这一点,我想知道如何解决它。
【讨论】:
阅读此处的一些 cmets,您似乎有兴趣在更改代码时运行测试,同时又不会失去对您正在处理的代码的关注。有一个 Eclipse 插件可以做到这一点。见infinitest。
【讨论】: