SpringBoot Junit 单元测试,提示:java.lang.Exception: No tests found matching

缺乏、安全感 2023-10-10 13:34 167阅读 0赞

今天进行SpringBoot 基于Junit单元测试,提示如下错误:

  1. java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=myTest], {ExactMatcher:fDisplayName=myTest], {LeadingIdentifierMatcher:fClassName=MyTest,fLeadingIdentifier=myTest]] from org.junit.internal.requests.ClassRequest@66d1af89
  2. at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
  3. at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:80)
  4. at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:71)
  5. at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:46)
  6. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:522)
  7. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
  8. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
  9. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

测试代码片段和maven 相关依赖如下:

  1. package com.zzg.test;
  2. import java.sql.SQLException;
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. import javax.sql.DataSource;
  7. import org.junit.Test;
  8. import org.springframework.boot.test.context.SpringBootTest;
  9. import com.zaxxer.hikari.HikariConfig;
  10. import com.zaxxer.hikari.HikariDataSource;
  11. import cn.smallbun.screw.core.Configuration;
  12. import cn.smallbun.screw.core.engine.EngineConfig;
  13. import cn.smallbun.screw.core.engine.EngineFileType;
  14. import cn.smallbun.screw.core.engine.EngineTemplateType;
  15. import cn.smallbun.screw.core.execute.DocumentationExecute;
  16. import cn.smallbun.screw.core.process.ProcessConfig;
  17. @SpringBootTest
  18. public class ScrewApplicationTests {
  19. @Test
  20. public void contextLoads() throws SQLException {
  21. // 数据源
  22. HikariConfig hikariConfig = new HikariConfig();
  23. hikariConfig.setDriverClassName("dm.jdbc.driver.DmDriver");
  24. hikariConfig.setJdbcUrl("jdbc:dm://192.168.0.1:5256/SYSDBA");
  25. hikariConfig.setUsername("SYSDBA");
  26. hikariConfig.setPassword("SYSDBA");
  27. //设置能够获取tables remarks信息
  28. DataSource dataSource = new HikariDataSource(hikariConfig);
  29. // 生成文件配置
  30. EngineConfig engineConfig = EngineConfig.builder()
  31. // 生成文件路径。与官方的例子不同,我是win10系统,就先放E盘根目录吧。
  32. .fileOutputDir("E://")
  33. // 打开目录
  34. .openOutputDir(false)
  35. // 文件类型
  36. .fileType(EngineFileType.HTML)
  37. // 生成模板实现
  38. .produceType(EngineTemplateType.freemarker).build();
  39. // 生成文档配置(包含以下自定义版本号、描述等配置连接),文档名称拼接:数据库名_描述_版本.扩展名
  40. Configuration config = Configuration.builder()
  41. .version("1.0.3") // 版本
  42. .description("数据库设计文档") // 描述
  43. .dataSource(dataSource) // 数据源
  44. .engineConfig(engineConfig) // 模板引擎配置
  45. .produceConfig(getProcessConfig()) // 加载配置:想要生成的表、想要忽略的表
  46. .build();
  47. // 执行生成
  48. new DocumentationExecute(config).execute();
  49. }
  50. /**
  51. * 配置想要生成的表+ 配置想要忽略的表
  52. *
  53. * @return 生成表配置
  54. */
  55. public static ProcessConfig getProcessConfig() {
  56. // 忽略表名
  57. List<String> ignoreTableName = Arrays.asList();
  58. // 忽略表前缀,如忽略a开头的数据库表
  59. List<String> ignorePrefix = Arrays.asList();
  60. // 忽略表后缀
  61. List<String> ignoreSuffix = Arrays.asList();
  62. return ProcessConfig.builder()
  63. //根据名称指定表生成
  64. .designatedTableName(new ArrayList<>())
  65. //根据表前缀生成
  66. .designatedTablePrefix(new ArrayList<>())
  67. //根据表后缀生成
  68. .designatedTableSuffix(new ArrayList<>())
  69. //忽略表名
  70. .ignoreTableName(ignoreTableName)
  71. //忽略表前缀
  72. .ignoreTablePrefix(ignorePrefix)
  73. //忽略表后缀
  74. .ignoreTableSuffix(ignoreSuffix).build();
  75. }
  76. }

钉子数据库文档生成工具相关依赖:

  1. <!-- 自动生成数据库文档-->
  2. <dependency>
  3. <groupId>cn.smallbun.screw</groupId>
  4. <artifactId>screw-core</artifactId>
  5. <version>1.0.5</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.freemarker</groupId>
  9. <artifactId>freemarker</artifactId>
  10. <version>2.3.30</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>com.zaxxer</groupId>
  14. <artifactId>HikariCP</artifactId>
  15. <version>3.4.5</version>
  16. </dependency>

问题排查步骤:

1、检查自己的编码没有任何错误或者相关依赖都正确引入。

2、检查测试类所在的包名,此src/test/java下的包名需要与src/main/java里边定义的包名一致。(我就是犯了这个错误)。

我在测试包的src/test/java 的包名为:com.zzg.test 而src/main/java 的包名为:com.zzg

直接修改测试包名,问题解决

发表评论

表情:
评论列表 (有 0 条评论,167人围观)

还没有评论,来说两句吧...

相关阅读