2012-03-20 17 views
6

Zastanawiałem się, jak wykonać niektóre testy integracyjne dla WSClient. Mój projekt jest zbudowany z maven.SoapUI Mock zintegrowany z testem Mavena

Aby przetestować inicjalizację konfiguracji i niektóre żądania, pomyślałem, że warto uruchomić usługę Mydło Mock. Potem dostałem się do tej konfiguracji pobranej z niektórych postów.

W moim 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> 

My MockService nazywa MyMock powinny zostały uruchomione na http://127.0.0.1:8181/somepath gdzie mój WSClient może wysłać żądania. Ale nie mogłem rozpocząć próbnej fazy podczas fazy mvn test.

Czy to odpowiedni sposób na przetestowanie WSClients? W takim razie, gdzie jest problem lub błędna konfiguracja?

EDYCJA: Nie ma błędu. Nie widzę fałszywego słuchania na tym porcie 8181. Jedyne wiadomości widzę (od soapui.log) są:

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 

od ciebie z góry i poważaniem,

Ruben

+0

Jakiego błędu widzisz? – nwinkler

+0

Edytowałem moje pytanie. Dzięki. –

Odpowiedz

6

Według http://www.soapui.org/Test-Automation/maven-2x.html trzeba uruchomić cel mock zamiast test gola. Proszę zmienić sekcję goal wezwać mock cel:

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

Dwa kolejne zmiany:

  • Upewnij się rozpocząć próbny egzamin w fazie poprzedniej do prowadzenia badań, na przykład w pre-integration-test lub process-test-classes
  • Dodaj opcję noBlock z true.

Zobacz powyżej na przykład.

+0

Zmieniłem cel i tak zaczęło się drwić. Ale czeka na użytkownika, aby nacisnąć dowolny klawisz. Czy istnieje sposób na kontynuowanie próbnego testowania przed testami, dopóki testy nie zostaną zakończone? Wygląda na to, że można użyć tylko po wykonaniu testów. Dzięki @nwinkler –

+0

W każdym razie próbuję użyć 'SoapUIMockServiceRunner' w metodzie' @ BeforeClass', być może jest to lepsze rozwiązanie. –

+0

Dodałem do mojego przykładu, aby rozwiązać niektóre z tych problemów. – nwinkler