我正在使用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涵盖服务器代码的任何建议?或者我可能做错了什么?
答案 0 :(得分:0)
EclEmma跟踪在测试jvm(运行测试时启动的vm)上启动的代码的覆盖范围。您之前似乎正在运行您的服务器,因此eclEmma“无法看到”其覆盖范围。您可以尝试使用Cargo在测试中运行服务器。