15

在具有多个 @Test 注释的 JUnit 测试用例中,如何选择性地运行测试?

例如,从下面的代码中,如何只运行一种测试方法?

   @Test
   public void testHelloEmpty() 
   {
      assertEquals(h.getName(),"");
      assertEquals(h.getMessage(),"Hello!");
   }

   @Test
   public void testHelloWorld() 
   {
      // h.setName("World");
      assertEquals(h.getName(),"World");
      assertEquals(h.getMessage(),"Hello World!");
   }

我试图只突出显示一个 @Test 方法并尝试运行它,但它不起作用。

4

4 回答 4

10

在 Eclipse 中运行单个测试用例(根据您的最后评论):

  • 转到运行(绿色向前箭头按钮)-> 运行配置。
  • 右键单击 JUnit,然后选择新建。
  • 填写您的测试用例和测试方法(搜索按钮在这里非常有用)。
  • 单击运行。
于 2013-11-13T05:07:48.687 回答
8

现在看来(Eclispse 4.4.0)这可以很容易地完成。

如果将插入符号放在测试用例方法定义的开头,发出RunDebug命令(菜单或F11Ctrl+ F11),则 JUnit 插件仅运行该测试用例。

(另一方面,如果您将插入符号放在方法的主体中,则该类中的所有测试用例都会运行。)

运行 JUnit 测试的更多提示:

  • Go to Previous/Next Member命令可用于通过键盘将插入符号快速移动到方法定义的头部。默认键绑定是Ctrl+ Shift+ Up/ Down
  • 如果在DebugJUnitConsole视图处于活动状态时发出RunDebug命令,则 Eclipse 将运行最后一次运行配置。这可用于重新运行您的单个测试用例,而无需导航回编辑器。
  • 可以通过导航运行菜单来运行特定的运行配置:Alt + RH、 数字键。
于 2014-10-09T13:57:41.747 回答
2

我认为您想要做的是将您的测试标记为属于不同的JUnit 类别@RunWith,然后使用和@Categories注释仅运行来自一个或多个类别的测试,而不是所有测试。这就是我过去的做法。在您的情况下,您可能有一个只有一个测试的类别。

查看示例:

在 JUnit 测试类中运行基准测试方法

如何在 JUnit 4 中运行属于某个类别的所有测试

于 2013-11-14T16:05:42.103 回答
1

将光标放在方法名称上,然后按Alt+ Shift+ X,然后按T。这会将测试方法作为 JUnit 测试运行。

注意:不要将光标放在方法中。这将运行类中的所有方法。它必须在方法声明上。

另请注意:@BeforeClass如果您在测试套件中组织测试,则可能不会执行测试设置。

于 2015-05-27T13:36:53.253 回答