我的目标是建立一个可以找到任何用kotlintest编写的测试的类。我已经有适用于Java / Scala / Groovy单元测试的代码,但无法使其适用于Kotlintest。
我的发现代码:
LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request().selectors(selectPackage("com.example")).build();
descriptor = new KotlinTestEngine().discover(request, uniqueId);
UniqueId的值为“engine:junit-example”。我尝试添加以下代码,但它也不起作用。
new DiscoverySelectorResolver().resolveSelectors(discoveryRequest, descriptor);
描述符包含所有带有测试的类,但没有测试方法。在其他情况下,只需调用
descriptor.getChildren()
即可获取测试方法,但是使用Kotlintest可以得到一个空列表。谢谢你的帮助。
最佳答案
您的代码不起作用的原因是因为KotlinTest不支持软件包名称选择器。这可能被认为是KotlinTest中的错误。
它确实支持classpath,class,directory和uri选择器。
编辑:
从3.2版本开始,KotlinTest现在支持包选择器,因此您的代码可以使用。