当前位置: 首页 > 知识库问答 >
问题:

Spring靴。类只在src/java/main中运行,在src/java/test中它有例外

邵骁
2023-03-14
  1. 我有一个Java/Spring-Boot类
@SpringBootApplication
@ComponentScan(value = "ignore")
@RunWith(SpringRunner.class)
public class MyApplication {
   @Bean
   YAMLConfig myeadFromYMLFile() {
      return new YAMLConfig();
   }
   public static void main(String[] args) throws InterruptedException {
      ConfigurableApplicationContext context = 
         SpringApplication.run(MyApplication.class, args);
      YAMLConfig myBean = context.getBean(YAMLConfig.class);
      myBean.doSomething();
      myBean.printApi();
   }
}
java prettyprint-override">@Configuration
@EnableConfigurationProperties
public class YAMLConfig {
   @Value("${refresh.rate}")
   private int refreshRate;
   @Value("${datasource.apiUrl}")
   private String apiUrl;
   public void doSomething() {
      System.out.printf("Refresh Rate : %s%n", refreshRate);
   }
   public void printApi() {
      System.out.printf("Refresh Rate : %s%n", apiUrl);
   }
   public String getApiUrl() {
      return apiUrl;
   }
}

问题:当我在src/java/main中运行类MyApplication时,一切都很酷。但是:当我在src/java/test中运行这个类时,它会失败

附注:我有spring-boot-starter-web依赖项。通过@springboottest,我得到了以下信息:

共有1个答案

赵俊侠
2023-03-14

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html已经回答了我的问题。谢谢伙计们!

 类似资料:
  • 我创建了一个E2E测试项目,最初,所有的java类都在'src/test/java“中,但现在我想把所有不包含测试的文件移到”src/main/java“文件夹中,问题就出在我做了之后: 我不能将包从”src/test/java“导入到”src/main/java“(但可以做相反的操作)。 清理了项目,并尝试通过IDE和maven运行,但它并没有改变结果。 我做错了什么?

  • 我有两个给定接口的实现,都用@Component注释。 src/main中有一个实现- 我在src/test中有一个测试类ABCTest.java,用 @Runwith(SpringRunner.class)、@SpringBoottest、@ContextConfigation、@ComponentScan、@EnableAutoConfigation 我希望这个ABCTest.java在运行测

  • 业务逻辑类:测试用例类: 我尝试过清理,将testResources目录放在POM中。我不想在类路径中添加classes文件夹。请指教。

  • 新手来了!我在SO上发现了很多类似的问题,但没有一个给我一个明确的答案。 我尝试过的一个可能的解决方案是不运行这些脚本(从'classpath:db/schema.sql'中删除init=runscript\\从'classpath:db/data.sql'中删除runscript),在测试之前以编程方式创建一些对象并将它们持久化到数据库,然后编写test,但我认为从脚本填充数据比在每个测试类中编

  • 当我们说mvn测试时,通常的方法是maven会在src/test/java文件夹中查找存在的测试。但是我的测试放在不同的文件夹中,即src/integration-test/java。如何通过命令行运行该文件夹中的测试?

  • 我从这个站点上前面的回答中了解到,对于Maven构建: 将部署到生产中,而将不部署到生产中。 包含主应用程序,而将包含测试主应用程序的代码 现在我的问题是,在编写测试框架时,哪种方法更好/更差: 测试框架本身将是主应用程序-因此它将驻留在?上 测试框架将仅用于测试主应用程序-因此将驻留在?上 但不知何故,我无法想象一个测试框架被部署到生产中。 方法2似乎是正确的,但是如果主要目的是编写一个测试框架