如果在DEV环境中创建数据库,我希望liquibase只创建一组单元测试函数。
我知道我可以为每个单元测试函数创建一个带有“context”属性的“changeset”标签,但是如果可能的话我想避免这种情况。
将“context”与“includeAll”标记一起使用是理想的,例如:
<includeAll path="./sql/UnitTest/" context="dev" />
但遗憾的是,这不受支持。
或者因为我有几个更改日志:
db.changelog.xml
include db.changelog-tables.xml
include db.changelog-functions.xml
...
include db.changelog-unit_test_functions.xml
如果我能告诉LiquiBase根据一个也可以运行的命令行参数跳过运行“db.changelog-unit_test_functions.xml”。
但是,“include”元素中不允许使用“context”属性。
<include file="./sql/db.changelog-unit-test.xml" context="dev" />
我尝试将“preconditions”测试附加到db.changelog-unit-test.xml,但是无法执行所有db.changelogs。
有没有人对如何避免编写粒度db.changelog-unit-test.xml有任何聪明的想法?
谢谢!
答案 0 :(得分:0)
include
或includeAll
中的上下文从3.5开始工作
请注意您文件中的xsd定义-您需要在那里租用http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd,否则即使运行3.5或更高版本,文件也不会得到验证。