1

我想从多个文本文件创建一个 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. 我宁愿不为每个文本文件创建一个子类。

这可能吗?

4

1 回答 1

0

我认为您可以使用@Before 和@After,但它们会在每次测试之前或之后运行。如果您可以忍受它,请使用它们。如果您需要在所有测试方法之后执行它,我认为没有类似的东西。

您能否通过在 @After 方法中使用一些条件来模拟它?

于 2011-03-02T15:30:02.627 回答