在不覆盖测试方法的情况下为子类运行 JUnit 测试



如果我有一个定义 JUnit 测试方法的任意类,以及一个覆盖测试行为但不是实际测试方法本身的子类,是否可以直接在 IntelliJ 中运行 ChildClass 测试?

class ParentClass
{
@Test
public void testSomeBehavior()
{
doTest();
}
protected void doTest()
{
// ParentClass specific behavior
}
}
class ChildClass extends ParentClass
{
@Override
protected void doTest()
{
// ChildClass specific behavior
}
}

我目前的解决方法是在类级别(ChildClass(启动运行,终止运行,然后从"运行/调试"屏幕中手动选择我的测试。但这并不理想。

我确实知道如果我的父类被定义为抽象的,那么 IntelliJ 会给我一个可以运行给定测试的可能实现类的列表。但是当父类可实例化时,我没有看到该选项。

我不明白你为什么要这样做...... 不建议这样做。但是,如果您对使用 JUNIT5 创建嵌套测试感兴趣,也许您可以使用此文档。

https://junit.org/junit5/docs/current/user-guide/#writing-tests-nested