使用Junit单元测试报错“No runnable methods“

这篇具有很好参考价值的文章主要介绍了使用Junit单元测试报错“No runnable methods“。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

异常

使用Junit单元测试报错如下:

java.lang.Exception: No runnable methods

	at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:191)
	at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
	at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
	at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
	at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
	at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
	at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
	at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
	at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:36)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)

错误代码

import org.junit.Test;

public class Test01 {

    @Test
    public void test(){
        System.out.println("hello world");
    }
}

原因

代码没有任何问题。@Test注解是放在方法上的,@Test注解也来自于包org.junit.Test

这个问题必须同另外一个问题一起说明比较合适:使用Junit单元测试报错“No tests found matching Method test01(Test01) from ClassRequest@5387f9e0“

模拟下出现问题代码的环境:maven项目,有一个main/java/Test01.javatest/java/Test01.java类。
no runnable methods,异常处理,单元测试,java,android studio
main/java/Test01.java

import org.junit.Test;

public class Test01 {
    @Test
    public void test01() {
        System.out.println("hello world - main/java/Test01.java");
    }
}

test/java/Test01.java

public class Test01 {
    public static void main(String[] args) {
        System.out.println("hello world - test/java/Test01.java");
    }
}

要出现上面的问题,需要符合下面的情况:

  • 相同路径。指的是类的路径必须同级,如test/java/Test01.javamian/java/Test01.java是同级路径,test/java/Test01.javamian/java/hello/Test01.java就不是同级路径了,也就不会发生冲突。
  • 相同类名。指的是在相同路径下的类名相同,如test/java/Test01.javamain/java/Test01.java既是相同路径又类名相同,test/java/Test02.javamain/java/Test01.java虽然路径相同但是类名不同,也不会发生冲突。
  • 使用@Test注解与否。在路径和类名都相同的情况下,如果main/java/Test01.java中有使用了@Test注解的方法,而test/java/Test01.java中一定没有使用@Test注解的方法就会发生此冲突,如果有使用了@Test注解的方法并且方法名不同就会报使用Junit单元测试报错“No tests found matching Method test01(Test01) from ClassRequest@5387f9e0“。

在满足上述条件后,执行main/java下的带有@Test注解的测试方法才会报上面这个错。

解决

  • 让它们的类路径不同
  • 让它们的类名不同
  • test/java下一定要有使用了@Test注解的方法

总之,建议不要在main/java下写带有@Test注解的测试方法,更不要让它们冲突。文章来源地址https://www.toymoban.com/news/detail-561771.html

到了这里,关于使用Junit单元测试报错“No runnable methods“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Junit测试运行出现No tests were found

    执行contextLoads()方法的时候是没问题的。 当想单独执行add()方法时就出现了No tests were found这个错误。 然后我试着将add()方法返回值改成void,执行成功。 又试了一下将方法定义为private,同样报错。 @Test注解的单元测试方法 不能有返回值 ,要用 void 。 方法定义为 private 的也不

    2024年02月11日
    浏览(34)
  • ELK报错no handler found for uri and method [PUT] 原因

    执行后提示no handler found for uri and method post,最新版8.2的问题?   原因: index.mapping.single_type: true 在索引上 设置将启用按索引的单一类型行为,该行为将在6.0后强制执行。 原 {type} 要改为 _doc,格式如下 PUT {index}/_doc/{id} 和 POST {index}/_doc

    2024年02月12日
    浏览(40)
  • redis jedis 单元测试 报错集锦 汇总 junit

    在单元测试时,使用jedis通常遇到如下报错: 实例化报错-连接报错-权限报错。此报错是有顺序的:例如,若连接报错,说明实例化完成,即配置文件配对了。若权限报错,说明连接通了,但密码错误。若实例化就报错,说明配置文件配错了,没法启动redis客户端,更别说去连

    2024年02月11日
    浏览(40)
  • 运用easy-es保存数据时,报错:cn.easyes.common.exception.EasyEsException: no such method:

    cn.easyes.common.exception.EasyEsException: no such method:     at cn.easyes.common.utils.ExceptionUtils.eee(ExceptionUtils.java:39)     at cn.easyes.core.cache.BaseCache.lambda$setterMethod$6(BaseCache.java:127)     at cn.easyes.core.cache.BaseCache$$Lambda$2307/809171830.get(Unknown Source)     at java.util.Optional.orElseThrow(Optional.java:29

    2024年02月03日
    浏览(28)
  • 【SpringBoot】org.junit.runners.model.InvalidTestClassError 单元测试类报错(已解决)

    出现该报错是因为 @Test 注解的错误使用。 @Test 注解的正确使用 : 权限必须是public 不能有参数 返回值类型是void 本类的其他的使用了Test注解的方法返回值也必须是void 正确导包 import org.junit.Test 一般正确使用 @Test 下,就没有报错了。 但是,我们可以继续深入探讨。 SpringBo

    2024年02月01日
    浏览(33)
  • 使用JUnit单元测试

    前提:   测试题目: 根据输入的年份和月份判断月份的天数。若月份不在有效范围之内,应提示:“月份输入不正确。”。月份不为2月,根据输入月份输出对应的月份天数。月份为2月,根据年份判断如为普通闰年,输出2月份正确天数;如为世纪闰年,输出2月份正确天数;

    2024年02月04日
    浏览(24)
  • 单元测试Junit使用与详解

    一、什么是单元测试 在平时的开发当中,一个项目往往包含了大量的方法,可能有成千上万个。如何去保证这些方法产生的结果是我们想要的呢?当然了,最容易想到的一个方式,就是我们通过System.out来输出我们的结果,看看是不是满足我们的需求,但是项目中这些成千上

    2024年02月02日
    浏览(35)
  • Junit4单元测试的使用

    导入Junit4依赖 要使用单元测试,首先我们得在项目中导入Junit4的jar包。 普通导入方式 ,在项目目录下创建一个lib文件夹,然后将Junit4的jar复制进来,然后右键点击Add as Library 将jar设为依赖。 在这里插入图片描述 Maven项目导入方式 ,在maven的配置文件pom.xml直接添加依赖坐标

    2024年02月13日
    浏览(32)
  • 单元测试工具——JUnit的使用

    ⭐️ 前言 ⭐️ 本篇文章主要介绍单元测试工具JUnit的使用。 🍉 欢迎点赞 👍 收藏 ⭐ 留言评论 📝 私信必回哟 😁 🍉 博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 🍉 博客中涉及源码及博主日常练习代码均已上传GitHub JUnit提供了非常强大的注解功能

    2024年02月02日
    浏览(36)
  • Java中的JUnit是什么?如何使用JUnit进行单元测试

    JUnit是Java中最流行的单元测试框架之一。它可以帮助开发人员在代码编写过程中检测出错误和异常,从而提高代码的质量和可靠性。 JUnit是一个由Kent Beck和Erich Gamma创建的开源Java单元测试框架,它已经成为Java开发中最常用的测试框架之一。这个框架的主要目的是为了简化单元

    2024年02月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包