2012-03-20 51 views
6

Tôi đã tự hỏi làm thế nào để thực hiện một số thử nghiệm tích hợp cho WSClient. Dự án của tôi được xây dựng với maven.SoapUI Mock tích hợp trong thử nghiệm Maven

Để kiểm tra khởi tạo cấu hình và một số yêu cầu, tôi nghĩ bạn nên bắt đầu dịch vụ SoapUI Mock. Sau đó, tôi đã nhận được cấu hình đó được truy xuất từ ​​một số bài đăng.

Trong pom.xml của tôi

<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 gọi MyMock lẽ ra phải được bắt đầu vào http://127.0.0.1:8181/somepath nơi WSClient tôi có thể gửi các yêu cầu. Nhưng tôi đã không thể bắt đầu mô hình trong giai đoạn mvn test.

Đó có phải là cách thích hợp để kiểm tra WSClients không? Trong trường hợp đó, vấn đề hoặc cấu hình sai ở đâu?

EDIT: Không có lỗi. Tôi không thể thấy mô hình đang nghe trên cổng đó 8181. Các thông điệp duy nhất tôi nhìn thấy (từ soapui.log) là:

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 

Thần bạn trước và loại liên quan,

Ruben

+0

Bạn thấy lỗi nào? – nwinkler

+0

Tôi đã chỉnh sửa câu hỏi của mình. Cảm ơn. –

Trả lời

6

Theo http://www.soapui.org/Test-Automation/maven-2x.html bạn cần để chạy các mục tiêu mock thay vì test mục tiêu. Vui lòng thay đổi phần goal của bạn để gọi mục tiêu mock:

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

Hai thay đổi nhiều hơn:

  • Hãy chắc chắn rằng bạn bắt đầu thử nghiệm mô hình trong một giai đoạn trước để chạy các bài kiểm tra, ví dụ trong pre-integration-test hoặc process-test-classes
  • Thêm tùy chọn noBlock với true.

Xem ví dụ ở trên.

+0

Tôi đã thay đổi mục tiêu và có nó bắt đầu giả lập. Nhưng nó chờ người dùng nhấn phím bất kỳ. Có cách nào để tiếp tục chạy mô hình trước khi kiểm tra junit cho đến khi các bài kiểm tra được thông qua không? Có vẻ như chỉ có thể được sử dụng sau khi các thử nghiệm được thực hiện. Cảm ơn @nwinkler –

+0

Dù sao tôi đang cố gắng sử dụng 'SoapUIMockServiceRunner' trong phương thức' @ BeforeClass' của tôi, có lẽ đó là giải pháp tốt hơn. –

+0

Tôi đã thêm vào ví dụ của mình để giải quyết một số điều này. – nwinkler

Các vấn đề liên quan