如何在IntelliJ中直接运行未重写JUnit测试方法的子类测试?
在IntelliJ中直接运行ChildClass的JUnit测试可行吗?
当然可以直接在IntelliJ里运行ChildClass的测试!完全没问题。
为什么能行?
因为JUnit会自动识别继承自父类的带@Test注解的方法。虽然ChildClass没有重写testSomeBehavior(),但它完整继承了这个方法;而你重写的doTest()是被testSomeBehavior()调用的,所以当运行ChildClass的测试时,执行逻辑会自动走到子类的doTest()实现里,完全符合你的预期。
怎么操作?
在IntelliJ里有几种简单的启动方式:
- 右键点击ChildClass的类文件,选择「Run 'ChildClass'」
- 在ChildClass的编辑界面,点击类名左侧的绿色运行图标
- 甚至可以直接在
testSomeBehavior()方法的左侧点击运行图标启动
附上你的示例代码
class ParentClass { @Test public void testSomeBehavior() { doTest(); } protected void doTest() { // ParentClass specific behavior } } class ChildClass extends ParentClass { @Override protected void doTest() { // ChildClass specific behavior } }
小排查点(如果遇到运行问题)
- 确认项目里的JUnit依赖配置正常(不管是Maven还是Gradle,依赖要正确引入)
- 检查IntelliJ的JUnit插件是否启用(路径:Settings → Plugins,搜索JUnit确认是Enabled状态)
- 确保ParentClass和ChildClass的访问权限没问题(比如
doTest()是protected,子类能正常重写)
内容的提问来源于stack exchange,提问作者Rjbcc58
相关产品推荐
相关产品推荐

