Intellij Idea JUnit 5 / Intellij /自定义测试引擎/方法选择问题

shstlldc  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(93)

我已经编写了一个自定义的JUnit 5测试引擎,用于在测试类级别进行参数化测试。
当使用IntelliJ并运行测试类时,一切正常。
IntelliJ test window when running test class
当我运行一个特定的参数时,一切都正常...
IntelliJ test window when running test parameter
当我为一个特定的参数运行一个特定的方法时,所有的测试方法都会运行...
IntelliJ test window when running test method
层次结构中的每个节点都有一个UniqueId,所以我希望IntelliJ使用一个UniqueIdSelector,但调试显示它使用的是一个MethodSelector
Engine Discovery Request
如果方法有参数,那么我可以使用methodParameterType字段来过滤.但是在这个场景中,没有测试方法参数。
有什么想法?有人遇到过这个问题吗?它是一个核心的IntelliJ问题/限制还是JUnit 5问题/限制?

x4shl7ld

x4shl7ld1#

我也遇到了同样的问题。通过查看IntelliJ的源代码,我发现了两个让IntelliJ使用UniqueIdSelector的解决方案。
1.使用一个MethodSourceClassSource,它指向一个用@Testable注解的方法或类。
1.使用与父节点相同的源。例如,您可以使每个测试使用测试类作为源,而不是单独的方法。
当然,这两种解决方案都有缺点。删除@Testable注解意味着您不能再从IntelliJ中的源文件触发测试。使用类作为所有节点的测试源意味着您不能再跳转到源代码中的方法。
PS:我假设你已经创建了IDEA-317561?我也创建了IDEA-337243。仅供参考。

相关问题