我最近更新到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`
答案 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/