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?

È stato utile?

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
scroll top