SoapUI Con JUnit
Es muy fácil incorporar la suite de test JUnit generada por SoapUI a nuestro proyecto y poder así sumar estos test a los test de integración de nuestra aplicación.
Librerias a incluir en el modulo de test de nuestro proyecto:
- bcprov-jdk15-138.jar
- commons-beanutils.jar
- commons-cli.jar
- commons-codec.jar
- commons-httpclient.jar
- not-yet-commons-ssl.jar
- soapui.jar
- soapui-xmlbeans.jar
- soap-xmlbeans.jar
- xbean-fixed.jar
- xmlpublic.jar
De esta manera corremos la batería completa de test de un proyecto. Hay que tener en cuenta que al tener un solo test para toda la batería, cuando surge un error no se continúa con el resto de los test.
@Test
public void holaMundo() throws Exception
{
SoapUITestCaseRunner runner = new SoapUITestCaseRunner();
runner.setProjectFile( "src/dist/HolaMundo-soapui-project.xml" );
runner.run();
}
También existe la posibilidad de correr individualmente cada uno de los test.
WsdlProject wsdlProject = null; TestSuite testSuite = null;
@Before public void setUp() throws Exception {
wsdlProject = new WsdlProject("src/dist/HolaMundo-soapui-project.xml"); testSuite = wsdlProject.getTestSuiteByName("HolaMundo");
}
@Test public void holaMundoOk() {
TestCase testCase = testSuite.getTestCaseByName("HolaMundoOk"); TestRunner runner = testCase.run(new PropertiesMap(), false); assertEquals(Status.FINISHED, runner.getStatus());
}
@Test public void holaMundoError() {
TestCase testCase = testSuite.getTestCaseByName("HolaMundoError"); TestRunner runner = testCase.run(new PropertiesMap(), false); assertEquals(Status.FINISHED, runner.getStatus());
}
Problemas con Assertions
No todas las "Assertions" disponibles en SoapUI funcionan desde JUnit. Por ejemplo las assertions "SOAP Reponse", "Schema Compilance" y "SOAP Fault". Cuando un TestCase tiene estas assertions, la corrida devuelve un estado FAILED.