Ejecutando un Test Suite de la misma clase pero con diferentes condiciones iniciales

En JUnit 4, estoy buscando escribir un conjunto de pruebas que se compone de varios sabores del mismo caso de prueba, solo con diferentes condiciones iniciales en cada uno. Aquí hay un ejemplo:

import java.io.File;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({MultiInputClientServerIntegrationTest.NormalInput.class,
    MultiInputClientServerIntegrationTest.SimulationHashIssue.class})
public class MultiInputClientServerIntegrationTest {


  @RunWith(Suite.class)
  @SuiteClasses({TestClientServerIntegration.class})
  public class NormalInput {}




  @RunWith(Suite.class)
  @SuiteClasses({TestClientServerIntegration.class})
  public class SimulationHashIssue {


    public SimulationHashIssue() {
      TestClientServerIntegration.simulation = new File("test\\BEECHA01\\sim2.zip");
      TestClientServerIntegration.inputFile = "files\\config.in";
    }


  }
}

Como puede ver, ambas clases internas tienen SuiteClasses delTestClientServerIntegration.class pero el segundo está cambiando algunos valores variables estáticos. Estoy encontrando que este constructor nunca es llamado, por lo que estas estadísticas nunca se cambian.

Mi objetivo final es ejecutar esteTestClientServerIntegration.class Una y otra vez con múltiples tipos de entrada. Si puedo ejecutar una prueba de esta manera, sería ideal, así que espero que sea posible. Me gustaría hacer el menor pirateo de JUnit como sea posible, pero lo que se necesita hacer se hará.

Respuestas a la pregunta(3)

Su respuesta a la pregunta