Come aggiungere un test JUnit 4 che non si estende da TestCase a TestSuite?
Domanda
In JUnit 3 ho semplicemente chiamato
suite.addTestSuite( MyTest.class )
Tuttavia, se MyTest è un test JUnit 4 che non estende TestCase, questo non funziona. Cosa devo fare invece per creare una suite di test?
Soluzione
Per quelli con un ampio set di suite / test in stile 3.8 che devono coesistere con il nuovo stile v4 è possibile effettuare le seguenti operazioni:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
// Add a JUnit 3 suite
CalculatorSuite.class,
// JUnit 4 style tests
TestCalculatorAddition.class,
TestCalculatorDivision.class
})
public class CalculatorSuite {
// A traditional JUnit 3 suite
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTestSuite(TestCalculatorSubtraction.class);
return suite;
}
}
Altri suggerimenti
Ho trovato la risposta: qui
In questo modo:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
TestCalculatorAddition.class,
TestCalculatorSubtraction.class,
TestCalculatorMultiplication.class,
TestCalculatorDivision.class
})
public class CalculatorSuite {
// the class remains completely empty,
// being used only as a holder for the above annotations
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow