在我的java spring应用程序中,我使用data-set.sql
文件填充数据以进行测试
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ConsultationWebApplication.class)
@Sql(scripts="requests-dataset.sql")
@DirtiesContext(classMode= ClassMode.AFTER_EACH_TEST_METHOD)
@ActiveProfiles("test")
public class StatisticsTest {
//bla
//bla
//bla
}'
但是当我将代码推送到存储库时, travis持续集成 抱怨:
org.springframework.jdbc.datasource.init.CannotReadScriptException: Cannot read SQL script from class path resource [ee/avok/consultation/service/requests-dataset.sql]; nested exception is java.io.FileNotFoundException: class path resource [ee/avok/consultation/service/requests-dataset.sql] cannot be opened because it does not exist
重点是,测试运行并传入localhost,但它未通过CI
似乎CI无法找到该文件,但该文件位于测试包中。
答案 0 :(得分:0)
根据我的经验,当您在Windows下开发并且CI服务器在Unix下工作时会发生此类错误。
我的猜测是你在Windows文件的路径中用一个大写字母命名了一些文件夹。 Windows不关心大写或小写,并且无论如何都会找到该文件。 Unix区分大小写,因此找不到文件。
在SQL文件的路径中的某处搜索大写字符。