我尝试运行在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.还有另一种方法来启动网络并用于每个测试吗?以及完成每次测试后如何清除数据库和消息
答案 0 :(得分:0)
看不到异常的实际原因。
但是请注意,对于4.x Corda,您必须放置
subFlow(ReceiveFinalityFlow(otherPartySession))
作为最后的操作。 邓诺是否有帮助
答案 1 :(得分:0)
听起来您在测试之间共享状态,这通常是不好的。考虑使用JUnit的MockNetwork
方法创建一个@Before
或使用DriverDSL
为每个测试用例创建一个隔离测试。