如何清除Corda流量测试中发生的消息错误

时间:2019-08-21 17:44:39

标签: corda

我尝试运行在Corda 4.1中从Corda 3.3创建的测试 我有2个测试用例以测试流程 在第一次测试中,我预计合同失败 而且我第一次测试的结果也是正确的

但是我从第一次测试中得到的错误被发送到医院流程 并且错误已在第二次测试中显示

实际上,第一个测试出现的错误不会影响第二个测试,但是会使第二个测试变慢

我真的不知道如何在第二次测试之前清除错误消息

如果有人有任何想法,请让我知道谢谢。

注意:如果您不停止节点,而是在运行新测试之前再次重新创建模拟节点,那么这将是我想要的解决方案。

.

=============================

我在一个文件中有6个测试

首先,我尝试创建网络并将该网络用于所有6个测试,这样我可以减少启动网络的时间 但是我需要在每次测试完成后清除数据库,以避免创建重复的数据。

一切正常,直到我更改为Corda 4.1

在4.1中,我不知道为什么我在Corda 3.3中用于清除数据库的方式无法像以前那样工作(在4.1中,需要很长时间来调整表) 因此,我需要更改创建网络的方式,并在每次测试完成后停止。 这样,花费更多的时间来启动网络(每次测试大约需要20-30秒) 让我感到惊讶的是,当我在第六次测试中完成5项测试花费了很长时间(日志显示管家很干净)时,他们花了6分钟完成 但是当我只运行该测试时,他们需要1分钟才能完成测试。 我的问题是 1.完成每项测试后如何清除所有内容 2.还有另一种方法来启动网络并用于每个测试吗?以及完成每次测试后如何清除数据库和消息

2 个答案:

答案 0 :(得分:0)

看不到异常的实际原因。

但是请注意,对于4.x Corda,您必须放置

subFlow(ReceiveFinalityFlow(otherPartySession))

作为最后的操作。 邓诺是否有帮助

答案 1 :(得分:0)

听起来您在测试之间共享状态,这通常是不好的。考虑使用JUnit的MockNetwork方法创建一个@Before或使用DriverDSL为每个测试用例创建一个隔离测试。