junit数据驱动的测试指定何时给出新数据

时间:2013-09-06 10:35:15

标签: java selenium junit junit4

我正在编写一些webdriver测试来测试网站的功能,现在我需要让它们成为数据驱动的。我正在使用junit来执行它们。测试流程是:登录,执行test1,注销。登录,执行test2,注销等。

我需要的是使数据驱动的类(Login和TestClass)如此,获取第一个登录数据,对所有数据变化进行所有测试,获取第二个登录数据,使用所有数据进行所有测试。等等。

所以我有调用测试类的主类:

@RunWith(Suite.class)
@Suite.SuiteClasses({

        Test1.class,
        Test2.class,
        Test3.class
})

public class MainTestSuite {
.. skipped.

测试课如下:

public class Test1 {
    private static final Logger Log = LogManager.getLogger(Test1.class);

    @Rule
    public TestRules testRules = new TestRules();

    @Test
    public void testSomething() throws Exception { // test code
    }

    @Test
    public void testSomethingElse() throws Exception { // test code
    }

...跳过。

现在登录和注销由TestRules调用,它正在实现TestWatcher:

public class TestRules extends TestWatcher {

    @Override
    protected void starting(Description description) {
     // do login
    }

    @Override
    protected void finished(Description description) {
     // do logout
    }

我一直在研究easytest模块https://github.com/EaseTech/easytest-core,但是给登录测试参数,它首先循环所有这些,这不是我需要的。您是否使用我已有的结构看到了我的问题的任何解决方案。

1 个答案:

答案 0 :(得分:0)

A common strategy I use is creating a Properties (or json) file that can be read by the test.

Using this method when you create a test to say, create a user, you can save the login information to the properties file, and read it with the rest of the tests.

Here are the docs on properties.