【问题标题】:KotlinTestEngine.discover() doesn't return any testsKotlinTestEngine.discover() 不返回任何测试
【发布时间】:2018-10-12 13:48:19
【问题描述】:

我的目标是创建一个可以找到任何用 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 我得到的是空列表。

感谢您的帮助。

【问题讨论】:

  • 我想我们需要查看更多代码才能提供帮助。我不清楚您是要编写 KotlinTestEngine 还是使用现有的。由于测试引擎通常通过查看测试本身来创建测试描述符,因此我们还需要查看这些。
  • 目前代码不多...我需要从测试引擎获取测试方法列表。现在它只给我课程,但我需要方法本身。
  • 可能没有有效的测试方法(在 KotlinTest 看来)。但我们只能确定您是否展示了您在实验中使用的代码。

标签: junit kotlin junit5 kotlintest


【解决方案1】:

您的代码不起作用的原因是 KotlinTest 不支持包名称选择器。这可能被认为是 KotlinTest 中的一个错误。

它确实尊重类路径、类、目录和 uri 选择器。

编辑:

从 3.2 开始,KotlinTest 现在支持包选择器,因此您的代码可以正常工作。

【讨论】:

  • 这在 3.2.0 版本中已修复(在我写这篇文章时等待)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多