我有一个完美的测试设置如下......
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = { ApplicationConfig.class })
public class myTest {
@Autowired
private JestClient jestClient;
@Autowired
private DataSource dataSource;
@Autowired
private DSLContext jooq;
这运行良好,没有任何问题,但是当我在运行的应用程序中运行完全相同的部分测试代码时,所有地狱都会松动。让我详细说明......
我的java配置文件描述了一个属性文件,如
@Configuration
@ComponentScan({ "my.package" })
@PropertySource("classpath:/my/package/config/myfile.properties")
@Import(PersistenceConfig.class)
public class ApplicationConfig {
我在Heroku上运行我的应用程序,因此我将我的DI框架 - Spring 3.2嵌入到我的项目中。在该云服务上启动应用程序将需要我创建一个Spring框架启动器。所以这就是我所做的:
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = { ApplicationConfig.class })
public class ApplicationMain {
private final static Logger LOGGER = LoggerFactory.getLogger(ApplicationMain.class);
public static void main(String[] args) throws Exception {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
// Choose what job to start based on a parameter
JobDetail jobDetail = null;
if (args != null && args.length > 0) {
for (int i = 0; i < args.length; i++) {
if (args[i].equals("GO1")) {
jobDetail = newJob(GogJob.class).build();
因此,如果使用GO1参数调用main,那么我的测试代码将执行。 但由于
而失败java.lang.IllegalStateException
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException
Caused by: java.io.FileNotFoundException
我相信这肯定是由于找不到属性造成的...... 我无法想象这个。
答案 0 :(得分:1)
由于您的属性文件在测试中使用,因此它们应位于src/test/resources