3

我正在使用 eclEmma 插件来测试我的 gwt 应用程序的代码覆盖率。我已经为客户端代码编写了 jUnit 测试类,例如测试 get/set 方法等以及用于 rpc 服务的 jUnit 测试。我使用“syncproxy”来测试我等效的 GreetService、GreetServiceAsync 和 GreetServiceImpl rpc 服务。例如,我有一个获取用户位置的位置服务,这是我的测试类的一部分:

公共类 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 回答