如何在导入到另一个模块的jar中包含测试目录(src / test /)下的Spring bean?
我有几个Maven项目:ms1,ms2,ms3和常规共享项目。通用共享的是一个多模块的Maven项目。它包含一些模块:通用共享实用程序,通用共享fs等...
在每个子模块中,我都有一个专用的pom.xml,其中包含所需的所有依赖关系;在通用共享pom中,我提供了有关构建和模块的详细信息:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
<modules>
<module>general-shared-utills</module>
<module>general-shared-fs</module>
</modules>
似乎我在子模块中为测试创建的所有bean(位于src / test中)都没有导入到Maven模块(例如ms1)中。
一个例子:
在子模块general-shared-utills中,我具有以下类:
在/ src / main下:
@Component
public class Shop
@Autowired
private AWSService awsService
@Component
@Profile("prod")
public class AWSService
...
在/ src / test下:
@Component
@Profile("test")
public class AWSServiceMock extends AWSService
当我在ms1的pom中导入general-shared-utills模块时,我希望它包含AWSServiceMock类。现在,ms1的测试找不到任何类型为AWSService的bean,因为它没有带有测试配置文件的AWSService类型的bean:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'a.x.y.aws.AWSService ' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
答案 0 :(得分:0)