无法将 main 的 @Configuration 的 @Bean 自动装配到测试 @Component 中

Cannot autowire main's @Configuration's @Bean into a test @Component

设置可能看起来很奇怪,因为它是来自多模块项目中的公共模块的代码,所以它在 main 中没有应用程序,但它在测试中有以测试可重用组件。就像:

/src/main/java/my.domain.mypackage.ApplicationConfiguration.java

@Configuration
public class ApplicationConfiguration {
   @Bean
   public MyService myService(){
       return MyService();
   }
}

/src/test/java/TestApplication.java

@SpringBootApplication
public class TestApplication {}

/src/test/java/my.domain.util.TestHelper.java

@Component
public class TestHelper {
    @Autowired
    private MyService myService;
}

/src/test/java/my.domain.mypackage.MyTest.java

@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("test")
public class MyTest {
    @Autowired
    private TestHelper testHelper;

    @Test
    public void test(){
       //Do something with testHelper
    }
}

发生的情况是,当测试运行时,它尝试实例化 TestHelper,并且由于某种原因,ApplicationConfiguration 中的某些依赖项尚不可用(TestHelper 上没有类型为 MyService 的合格 bean)。

会是什么原因?我已经尝试使用@Import、@DependsOn,但它不起作用,而且我确信它是我设计中的错误或基本错误

需要在ApplicationConfiguration.javaclass的顶部添加@Configuration注解。