如何在Corda Enterprise 4中使用“migration.jar”来运行测试?

如何在Corda Enterprise 4中使用“migration.jar”来运行测试?,corda,Corda,在使用Corda Enterprise 4.2时,我们成功地创建了 biz生成的迁移……jar这似乎是一切的先决条件,甚至 当使用H2数据库时。我们无法使用此.jar文件 在执行我们的测试时,即使在引用这个全新的.jar 测试设置中的文件,如下所示: val BIZ_COMPONENT_VERSION="1.0.0" val DEFAULT_MOCK_NETWORK = MockNetwork( cordappPackages = listOf(

在使用Corda Enterprise 4.2时,我们成功地创建了
biz生成的迁移……jar
这似乎是一切的先决条件,甚至 当使用H2数据库时。我们无法使用此
.jar
文件 在执行我们的测试时,即使在引用这个全新的
.jar
测试设置中的文件,如下所示:

  val BIZ_COMPONENT_VERSION="1.0.0"
  val DEFAULT_MOCK_NETWORK = MockNetwork(
          cordappPackages = listOf(
                  "package.subpkg-infra.cd.contract",
                  "package.subpkg-infra.contract",
                  "package.subpkg-infra.flow",
                  "package.subpkg-infra.cd.flow",
                  "package.subpkg-infra.cd.pend.flow",
                  "package.subpkg-infra.schema",
                  "package.subpkg-cordapp:biz-generated-migration:$BIZ_COMPONENT_VERSION",
                  "package.subpkg-cordapp:biz-component-base:$BIZ_COMPONENT_VERSION",
                  "package.subpkg-cordapp:biz-component-core:$BIZ_COMPONENT_VERSION",
                  "package.subpkg-cordapp:biz-component-interact:$BIZ_COMPONENT_VERSION"
          ),
          notarySpecs = listOf(MockNetworkNotarySpec(DUMMY_NOTARY_NAME)))
每个测试都失败,抱怨找不到 模式

我们如何使用生成的
migration.jar
文件
启用我们的测试?或者这种方法完全被误用了?

建议使用以下选项来解决此问题

  • 您是否已重写MappedSchema类的“migrationResources”=“migration/filename”

  • 确保使用正确的XML,这样就不会特定于H2

  • 您还可以尝试使用以下network=MockNetwork(MockNetworkParameters(listOf(findCordapp(“com.deqode.contracts”)、findCordapp(“com.deqode.flows”))代替cordappackages

  • 你能确认你是否正在使用Windows吗


  • 您是否已将migration.jar添加到cordapps目录?相反,问题可能是生成的migration.jar保存在哪里,在哪个文件夹中。另外,生成迁移脚本后,是否启动以下命令来生成migration.jar.jar cvf/path/to/node/cordapps/biz-generated-migration.jar migrationHi,Sneha。主要的一点是,在执行测试阶段时,我们根本不需要cordapps文件夹。我们所有的努力都是经过反复试验的。在3.X企业版中,我们可以创建测试,而不用担心cordapps文件夹。从4.X enterprise开始,我们需要将一些.sql添加到使用DatabaseMigration工具生成的项目资源中。它解决了测试阶段,但随着该文件集成到结果cordapp中,我们对h2模式进行了研究。为了将结果cordapp切换到任何其他后台数据库,我们需要手动从该cordapp中删除.sql文件,这将破坏其SHA256哈希,并迫使我们始终在节点启动之前清理生成的数据库。您能否确认以下几点:1。您是否已重写MappedSchema类的“migrationResources”=“migration/filename”。2.确保使用正确的XML,这样就不会特定于H2。3.您还可以尝试使用以下network=MockNetwork(MockNetworkParameters(listOf(findCordapp(“com.deqode.contracts”)、findCordapp(“com.deqode.flows”))代替cordappackages。4.斯内哈,你能确认一下你是否在使用WindowsHi吗。1.我们实际上没有改变这个设置;2.所有JPA映射都是通过注释完成的,我们没有使用任何xml映射;4.我们使用Windows和Linux进行开发/编译/测试;3.一旦我们能尝试你的建议,我们会回复你的。