public class MyTestClass {
@BeforeClass
public static void calledBeforeAnyTestIsRun() {
// Do something
}
@Before
public void calledBeforeEachTest() {
// Do something
}
@Test
public void testAccountCRUD() throws Exception {
}
}
public class MyTestClass extends TestCase {
public static void setUpBeforeClass() {
// Do something
}
public void setUp() {
// Do something
}
public void testAccountCRUD() throws Exception {
}
}
3条答案
按热度按时间gfttwv5a1#
非常模糊的问题。具体来说,你没有提到你是如何运行JUnit测试的。你还提到了“文件”,一个文件可以包含多个JUnit测试。你想在每个测试之前运行外部命令,还是在执行任何测试之前?
更多关于主题:
如果您使用的是JUnit 4或更高版本,则可以使用
@Before
注解标记一个方法,该方法将在每个标记的@Test
方法之前执行。或者,使用@BeforeClass
标记静态void方法将导致它在类中的任何@Test
方法运行之前运行。字符串
如果您使用的是JUnit 4之前的版本,则可以覆盖
setUp()
和setUpBeforeClass()
方法,作为@Before
和@BeforeClass
的替代。型
bogh5gae2#
假设您使用的是JUnit 4.0,您可以执行以下操作:
字符串
如果你想为每个单元测试运行外部命令,那么你应该在
@Before
设置方法中执行。wa7juj8i3#
免责声明:我是TestProcesses的作者。
以防有人在这里寻找解决方案:
这个问题已经有一段时间没有被问到了。假设你已经迁移到了JUnit 5,并且正在使用(或者可以使用)Spring Test,你可以看看TestProcesses。它是一个JUnit 5扩展,管理测试期间所需的应用程序/程序(流程)的生命周期。
听起来这正是您所需要的,它允许您以声明的方式管理流程的生命周期,而无需在测试类中使用大量样板文件。
https://github.com/netmikey/testprocesses的