我的目标是建立一个可以找到任何用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现在支持包选择器,因此您的代码可以使用。

10-04 13:56