在带有多个@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方法并尝试运行它,但它不会那样工作。
答案 0 :(得分:10)
在Eclipse中运行单个测试用例(根据您的上一条评论):
答案 1 :(得分:7)
似乎现在(Eclispse 4.4.0)这可以轻松完成。
如果将插入符号放在测试用例方法定义的开头,请发出run或debug命令(菜单或 F11 或 Ctrl + F11 ),然后JUnit插件只运行该测试用例。
(另一方面,如果您将插入符号放在方法的 body 中,那么该类中的所有测试用例都会运行。)
提示 转到上一个/下一个成员命令可用于快速将插入符号移动到使用键盘定义方法的头部。默认的键绑定是 Ctrl + Shift + Up / Down 。
答案 2 :(得分:2)
我认为您要做的是将测试标记为属于不同的JUnit Categories,然后使用@RunWith
和{{1}运行来自一个或多个类别而非所有测试的测试注释。这就是我过去的做法。在您的情况下,您可能只有一个测试类别。
参见示例:
Running benchmark methods in a JUnit test class
How to run all tests belonging to a certain Category in JUnit 4
答案 3 :(得分:1)
将光标放在方法名称上,然后按 Alt + Shift + X ,然后按 T 。这将以JUnit测试运行测试方法。
注意:不要将光标放在方法中。这将运行类中的所有方法。它必须在方法声明上。
另请注意:如果您在测试套件中组织测试,则可能无法执行@BeforeClass
测试设置。