2012-03-20 9 views
6

WSClientの統合テストを行う方法が不思議でした。私のプロジェクトはmavenでビルドされています。Mapのテストで統合されたSoapUI Mock

構成の初期化といくつかの要求をテストするために、私はSoapUI Mockサービスを開始することをお勧めしました。それから、いくつかの投稿からその設定を取得しました。私の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> 

私MockServiceは私WSClientが要求を送ることができる場所MyMockがhttp://127.0.0.1:8181/somepath上で開始されている必要がありますと呼ばれます。しかし、私はmvn testフェーズの間にモックを始めることができませんでした。

WSClientをテストするには適切な方法ですか?その場合、問題はどこにありますか?

EDIT:エラーはありません。私はそのポート8181を聞いて偽を見ることができません。あなたが代わりにmock目標を実行する必要がhttp://www.soapui.org/Test-Automation/maven-2x.htmlによると、事前及び種類の点で

あなたより
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 

ルーベン

+0

どのようなエラーが表示されますか? – nwinkler

+0

私は自分の質問を編集しました。ありがとう。 –

答えて

6

:(soapui.logから)私が見る唯一のメッセージですtestゴール。あなたは、例えば、テストを実行する前の段階で模擬テストを開始してください

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

    つ以上の変更:mock目標を呼び出すために、あなたのgoalセクションを変更してください。 pre-integration-testまたはprocess-test-classes

  • オプションをtrueと追加します。

たとえば、上記を参照してください。

+0

私は目標を変更し、はいそれは模擬を開始しました。しかし、ユーザーがいずれかのキーを押すのを待つ。 junitテストの前に模擬テストを実行してからテストをパスする方法はありますか?テストが実行された後にのみ使用できるようです。 ありがとう@nwinkler –

+0

とにかく私の '@ BeforeClass'メソッドで' SoapUIMockServiceRunner'を使用しようとしています。これはもっと良い解決策かもしれません。 –

+0

私はこれにいくつか取り組むために私の例を追加しました。 – nwinkler

関連する問題