ActiveJDBC(JavaLite):使用" activejdbc.properties"不适用于测试目录

时间:2018-03-01 20:33:30

标签: activejdbc javalite

我最近更新到ActiveJDBC 2.1,以便使用activejdbc.properties来外化数据库属性,因此我们不必将数据库用户名/密码签入SVN。

使用" activejdbc.property "文件在 src / main / resources 中为主代码工作完美。现在的目标是替换" database.property "使用" activejdbc.property "在测试目录 src / test / resources 中输入文件所以它可以指向文件系统上的相同数据库配置文件。

在测试目录中进行此更改后,执行gradle构建时会收到错误(gradle clean build)。这是我们看到的例外情况:

`" org.javalite.activejdbc.InitException:java.io.FileNotFoundException:\ database.properties(系统找不到指定的文件)"

为什么这适用于主目录但不适用于测试?

堆栈跟踪:         ES /主/ COM / Brookdale的/模型/ UnitOfMeasure.class            ****************************终止仪表******************** ********            ...            :组装            :compileTestJava            :processTestResources            :testClasses            :测试

      com.brookdale.model.ActualChargeTest > unitQuantityMustBeGreaterThanZero FAILED
        org.javalite.activejdbc.InitException: java.io.FileNotFoundException: \database.properties (The system cannot find the file specified)
        Caused by:
        java.io.FileNotFoundException: \database.properties (The system cannot find the file specified)
       ... more tests ...
      com.brookdale.service.RelationshipServiceTest > updateContactRel_GivenValidInfo_
       RecordIsInserted FAILED
        org.javalite.activejdbc.InitException: java.io.FileNotFoundException: \datab
    ase.properties (The system cannot find the file specified)
        Caused by:
        java.io.FileNotFoundException: \database.properties (The system cannot f
       ind the file specified)
       49 tests completed, 25 failed, 7 skipped
       :test FAILED
       FAILURE: Build failed with an exception.
       * What went wrong:
       Execution failed for task ':test'.
       BUILD FAILED`

1 个答案:

答案 0 :(得分:0)

您似乎没有正确命名文件:文件名不是activejdbc.property,而是activejdbc.properties

此外,Java类加载器不保证如果在类路径上找到多个文件,它们将首先加载哪个文件。如果您想在测试环境中使用不同的JDBC属性,请按照以下文档进行操作:http://javalite.io/database_connection_management#multiple-environments-property-file-method

以下是具有此实施的示例项目:https://github.com/javalite/simple-example/