【发布时间】:2018-10-15 13:11:01
【问题描述】:
所以,我有以下两个 java 测试类:
package com.company.alfresco;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = BuildFileTreeApplication.class)
@Slf4j
public class BuildFileTreeTest {
@Autowired
private CmisDao cmisDao;
@Autowired
private AlfrescoFileTreeAPI alfrescoFileTreeAPI;
...
}
和
package com.company.facade;
@SpringBootTest
@Slf4j
public class EntryPointTest extends AbstractTestNGSpringContextTests{
private Map<String, String> documentMetadata;
@Autowired
private FacadeInitializer facadeInitializer;
...
}
我还有两个独立的主方法类,每个测试类使用一个:
package com.company;
@SpringBootApplication
@ComponentScan(basePackages = {"com.company", "com.company.ssh", "com.company.camel",
"com.company.cmis.services", "com.company.facade"})
public class AlfrescoApiApplication {
public static void main(String[] args){
SpringApplication.run(AlfrescoApiApplication.class, args);
}
}
和
package com.company;
@SpringBootApplication
@ComponentScan(basePackages = {"com.company.alfresco", "com.company.models",
"com.company.config"})
public class BuildFileTreeApplication {
public static void main(String[] args){
SpringApplication.run(BuildFileTreeApplication.class, args);
}
}
我想运行第一个测试(BuildFileTreeTest),而不使用另一个测试正在使用的 bean(FacadeInitializer)。
由于某种原因,使用此包设置,当我运行 BuildFileTreeTest 测试类时,FacadeInitializer bean 仍然在应用程序上下文中使用,尽管它存在于“外观”包中,但我没有这样做'不包括在@ComponentScan 注释中,在BuildFileTreeApplication spring main 方法类中。有什么想法吗?
【问题讨论】: