Запустите тестовый экземпляр TestNG - PullRequest
0 голосов
/ 20 марта 2012

Я хотел бы программно запустить экземпляр теста TestNG. Мой тест такой:

public class MyTest {
    private Browser browser;
    private User user;

    public MyTest(Browser browser, User user) {
        this.browser = browser;
        this.user = user;
    }

    @Test public void testExample() {
        ...
    }
}

Поскольку мой тест требует, чтобы некоторые объекты были переданы его конструктору для работы, я не могу просто предоставить объект класса теста. Так что это не сработает:

TestNG testng = new TestNG();
testng.setTestClasses(MyTest.class);
testng.run();

Есть идеи, как мне это сделать с помощью TestNG?

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Вы можете использовать статическую переменную или метод для получения этих объектов.Но это работает, только если вы не планируете параллельное выполнение ваших тестов.

public class ExampleClass{

private static Browser browser;

public DriverContainer(Browser brows){
    browser = brows;
}

public static Browser getBrowser() {
    return browser;
}

ExampleClass может быть создан в другом классе теста в методе @BeforeSuite или @BeforeTest.

0 голосов
/ 21 марта 2012

У вас есть несколько вариантов:

  • Используйте @Factory для создания ваших объектов.
  • Используйте Поддержка TestNG Guice (аннотация @Guice) для добавления объектов Browser и User.

На самом деле вы можете использовать оба этих подхода вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...