3

gwt アプリケーションのコード カバレッジをテストするために、eclEmma プラグインを使用しています。get/set メソッドなどのテストや、rpc サービスの jUnit テストなど、クライアント コード用の jUnit テスト クラスを作成しました。「syncproxy」を使用して、同等の GreetService、GreetServiceAsync、および GreetServiceImpl rpc サービスをテストしました。たとえば、ユーザーの位置情報を取得する位置情報サービスがあり、これはテスト クラスの一部です。

public class LocationServiceTest {

private static LocationService rpcService =
        (LocationService) SyncProxy.newProxyInstance(LocationService.class,
      "http://localhost:...", "location");

@Test
public void testAdministrativeAreaLevel2LocationService() {
    String result = rpcService.getAddress("49.28839970000001,-123.1259316");
    assertTrue((result != null) && (result.startsWith("Vancouver")));

}

jUnit テストはすべてパスしますが、プロジェクトで eclEmma を実行すると (プロジェクトを右クリックし、[Coverage as] を選択してから [jUnit test] を選択します)、クライアント コードのカバレッジ結果のみが得られ、すべてのサーバー コードのカバレッジは 0% です。 .

サーバーコードをカバーするために eclEmma を取得する方法について何か提案はありますか? または、私が間違っているかもしれないことのために?

4

1 に答える 1

0

EclEmma は、テスト jvm (テストの実行時に起動する vm) で起動されたコードのカバレッジを追跡します。以前にサーバーを実行しているように見えるため、eclEmma はそのカバレッジを「見ることができません」。たとえば、 Cargoを使用して、テスト内でサーバーを実行してみることができます。

于 2014-01-02T06:56:52.407 に答える