我正在使用eclEmma插件来测试我的gwt应用程序的代码覆盖率。我已经为客户端代码编写了jUnit测试类,例如测试获取/设置方法等,以及针对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覆盖服务器代码的任何建议?还是我可能做错了什么?
最佳答案
EclEmma跟踪在测试jvm(运行测试时启动的vm)上启动的代码的覆盖范围。您似乎以前在运行服务器,因此eclEmma“看不到”它的覆盖范围。例如,您可以尝试使用Cargo在测试中运行服务器。
关于eclemma - 在gwt应用程序中使用eclEmma插件获取服务器代码无覆盖结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13577067/