В настоящее время у меня есть аннотация BaseTest
класс, который содержит несколько общих @Test
.Параметризированные многослойные апартаменты
public abstract class BaseTest {
private String expected;
private String actual;
public BaseTest(String expected, String actual) {
this.expected = expected;
this.actual = actual;
}
public String methodToTest(String line) {
return line.trim();
}
@Test
public void testNull() {
assertNull(methodToTest(null));
}
// more @Tests...
}
SomeTest
BaseTest
расширяет, где я определяю различные тестовые случаи.
@RunWith(Parallelized.class)
public class SomeTest extends BaseTest {
// @Parameters (test cases) goes here...
}
У меня есть много тестов, которые распространяются BaseTest
, которые я затем положить в Suite
в RunAllTests
.
@RunWith(Suite.class)
@SuiteClasses({ SomeTest.class, AnotherTest.class, etc... })
public class RunAllTests { }
Итак, давайте скажем, я хочу, чтобы добавить больше @Test
«с, но я хочу, чтобы содержать их в другой класс.
public class WhitespaceTest extends BaseTest {
public WhitespaceTest(String expected, String actual) {
super(expected, actual);
}
@Test
public void testNewline() {
assertEquals(expected, methodToTest(actual + "\n"));
}
// more @Tests...
}
Оказывается, мне нужно еще один «слой» Suites
запускать каждый тест, так что для каждого класса в RunAllTests
, я бегу BaseTest
ИWhitespaceTest
. Как я могу реализовать этот слой?
не понимаю. Почему вы не можете добавить «WhitespaceTest» в свой текущий пакет? Также, конечно, у вас есть несколько наборов – dkatzel
Я хочу запустить каждый тест в 'WhitespaceTest' для каждого' BaseTest' в текущем пакете. –
Звучит скорее как проблема множественного наследования, чем проблема с набором – dkatzel