2012-03-20 16 views
6

Me preguntaba cómo realizar algunas pruebas de integración para WSClient. Mi proyecto está construido con maven.SoapUI Mock integrado en la prueba de Maven

Para probar la inicialización de la configuración y algunas solicitudes, pensé que era una buena idea iniciar un servicio SoapUI Mock. Luego ingresé a esa configuración recuperada de algunas publicaciones.

En mi pom.xml

<plugin> 
      <groupId>eviware</groupId> 
      <artifactId>maven-soapui-plugin</artifactId> 
      <version>4.0.1</version> 
      <executions> 
       <execution> 
        <id>StartupMock</id> 
        <configuration> 
         <projectFile>src/test/soapui/MyMock-soapui-project.xml</projectFile> 
         <outputFolder>${project.build.directory}/surefire-reports</outputFolder> 
         <junitReport>true</junitReport> 
         <host>http://127.0.0.1:8181</host> 
         <mockService>DataProviderMock</mockService> 
        </configuration> 
        <goals> 
         <goal>test</goal> 
        </goals> 
        <phase>test</phase> 
       </execution> 
      </executions> 
     </plugin> 

Mi MockService llamados MyMock debería haberse iniciado en http://127.0.0.1:8181/somepath donde mi WSClient podría enviar las solicitudes. Pero no pude comenzar la simulación durante la fase mvn test.

¿Es esa la forma adecuada de probar WSClients? En ese caso, ¿dónde está el problema o la mala configuración?

EDITAR: No hay ningún error. No puedo ver el simulacro escuchando en ese puerto 8181. Los únicos mensajes que veo (de soapui.log) son:

2012-03-21 10:17:21,011 WARN [SoapUI] Missing folder [D:\proyectos\everest-utils\everest-bridge\trunk\.\ext] for external libraries 
2012-03-21 10:17:21,392 INFO [DefaultSoapUICore] initialized soapui-settings from [C:\Users\rromero\soapui-settings.xml] 
2012-03-21 10:17:23,205 INFO [WsdlProject] Loaded project from [file:/D:/proyectos/everest-utils/everest-bridge/trunk/src/test/soapui/MyMock-soapui-project.xml] 
2012-03-21 10:17:23,891 INFO [SoapUITestCaseRunner] Running soapUI tests in project [DataProvider] 
2012-03-21 10:17:23,894 INFO [SoapUITestCaseRunner] Running Project [MyMock], runType = SEQUENTIAL 
2012-03-21 10:17:23,900 INFO [SoapUITestCaseRunner] Project [MyMock] finished with status [FINISHED] in 0ms 

De lo que de antemano y saludos cordiales,

Ruben

+0

¿Qué tipo de error estás viendo? – nwinkler

+0

He editado mi pregunta. Gracias. –

Respuesta

6

Según http://www.soapui.org/Test-Automation/maven-2x.html que necesita para ejecutar el objetivo mock en lugar de la test objetivo. Por favor cambia su sección goal a llamar a la mock objetivo:

<plugin> 
     <groupId>eviware</groupId> 
     <artifactId>maven-soapui-plugin</artifactId> 
     <version>4.6.1</version> 
     <executions> 
      <execution> 
       <id>StartupMock</id> 
       <configuration> 
        <projectFile>src/test/soapui/MyMock-soapui-project.xml</projectFile> 
        <outputFolder>${project.build.directory}/surefire-reports</outputFolder> 
        <junitReport>true</junitReport> 
        <host>http://127.0.0.1:8181</host> 
        <mockService>DataProviderMock</mockService> 
        <noBlock>true</noBlock> 
       </configuration> 
       <goals> 
        <goal>mock</goal> 
       </goals> 
       <phase>process-test-classes</phase> 
      </execution> 
     </executions> 
    </plugin> 

Otros dos cambios:

  • Asegúrese de iniciar la prueba falsa en una fase previa a la ejecución de las pruebas, por ejemplo en pre-integration-test o process-test-classes
  • Agregue la opción noBlock con true.

Véase más arriba, por ejemplo.

+0

Cambié el objetivo y sí comenzó el simulacro. Pero espera que el usuario presione cualquier tecla. ¿Hay alguna manera de seguir ejecutando el simulacro antes de las pruebas junit hasta que se pasen las pruebas? Parece que solo se puede usar después de que se ejecutan las pruebas. Gracias @nwinkler –

+0

De todos modos estoy tratando de usar el 'SoapUIMockServiceRunner' en mi método' @ BeforeClass', tal vez es una mejor solución. –

+0

He agregado a mi ejemplo para abordar algo de esto. – nwinkler