在给定的JUnit文件中运行测试之前是否可以运行外部命令?我使用Eclipse的Run命令运行我的测试。使用JUnit 4。
感谢。
答案 0 :(得分:2)
非常含糊的问题。具体来说,您没有提到如何运行JUnit测试。你也提到'文件',一个文件可以包含几个JUnit测试。是否要在每个测试之前或者在执行任何测试之前运行外部命令?
但更多关于主题:
如果您使用的是JUnit 4或更高版本,则可以使用@Before
注释标记方法,并且该方法将在每个标记的@Test
方法之前执行。或者,使用@BeforeClass
标记静态void方法将导致在运行类中的任何@Test
方法之前运行它。
public class MyTestClass {
@BeforeClass
public static void calledBeforeAnyTestIsRun() {
// Do something
}
@Before
public void calledBeforeEachTest() {
// Do something
}
@Test
public void testAccountCRUD() throws Exception {
}
}
如果您使用的是早于4的JUnit版本,则可以覆盖setUp()
和setUpBeforeClass()
方法作为@Before
和@BeforeClass
的替换。
public class MyTestClass extends TestCase {
public static void setUpBeforeClass() {
// Do something
}
public void setUp() {
// Do something
}
public void testAccountCRUD() throws Exception {
}
}
答案 1 :(得分:1)
假设您使用的是JUnit 4.0,则可以执行以下操作:
@Test
public void shouldDoStuff(){
Process p = Runtime.getRuntime().exec("application agrument");
// Run the rest of the unit test...
}
如果要为每个单元测试运行外部命令,则应使用@Before
设置方法执行此操作。