在JUnit测试Eclipse之前运行外部命令

时间:2012-02-18 22:04:43

标签: java windows eclipse junit command

在给定的JUnit文件中运行测试之前是否可以运行外部命令?我使用Eclipse的Run命令运行我的测试。使用JUnit 4。

感谢。

2 个答案:

答案 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设置方法执行此操作。