Создание тестового набора JUnit с несколькими экземплярами параметризованного теста - PullRequest
1 голос
/ 09 февраля 2010

Я хочу создать TestSuite из нескольких текстовых файлов. Каждый текстовый файл должен быть одним тестом и содержать параметры для этого теста. Я создал тест как:

@RunWith(Parameterized.class)
public class SimpleTest {
  private static String testId = "TestCase 1";
  private final String parameter;

  @BeforeClass
  public static void beforeClass() {
    System.out.println("Before class " + testId);
  }

  @AfterClass
  public static void afterClass() {
    System.out.println("After class " + testId);
  }

  @Before
  public void beforeTest() {
    System.out.println("Before test for " + testId + ":" + parameter);
  }

  @After
  public void afterTest() {
    System.out.println("After test for " + testId + ":" + parameter);
  }

  @Parameters
  public static Collection<String[]> getParameters() {
    //Normally, read text file here.
    return Lists.newArrayList(new String[] { "Testrun 1" }, new String[] { "Testrun 2" });
  }

  public SimpleTest(final String parameter) {
    this.parameter = parameter;
  }

  @Test
  public void simpleTest() {
    System.out.println("Simple test for " + testId + ":" + parameter);
  }

  @Test
  public void anotherSimpleTest() {
    System.out.println("Another simple test for " + testId + ":" + parameter);
  }
}

Теперь я хочу создать пакет, который запускает этот тест несколько раз. Но поскольку Parameterized, BeforeClass и AfterClass запускаются только один раз, это кажется немного невозможным.

Итак, подведем итог:

  1. Я хочу запустить тест несколько раз.
  2. Каждый раз, когда мне нужен входной параметр (например, имя текстового файла)
  3. Каждый раз, когда функции BeforeClass, AfterClass и Parameters должны вызываться
  4. Я лучше не делаю подкласс для каждого текстового файла.

Возможно ли это?

1 Ответ

0 голосов
/ 02 марта 2011

Я думаю, что вы можете использовать @Before и @After, но они запускаются до или после каждого теста . Если вы можете жить с этим, используйте их. Если вам нужно выполнить это после всех методов тестирования, я не думаю, что есть что-то подобное.

Не могли бы вы смоделировать это, используя некоторые условные выражения в методе @After?

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