gpt4 book ai didi

go - 为调用子工作流程的工作流程编写测试时出现临时错误 : "unable to find workflow type"

转载 作者:行者123 更新时间:2023-12-03 08:15:28 24 4
gpt4 key购买 nike

我正在使用 golang SDK 进行时间处理。我正在为我的工作流程 LoadCreateWorkflow 编写测试。它有一个事件,还启动一个子工作流 LoadLifecycleWorkflow

在为其编写单元测试时,我模拟了事件和子工作流LoadLifecycleWorkflow:

    s.env.OnActivity(CreateLoadActivity, mock.Anything, mock.Anything).Return(nil, nil).Once()
s.env.OnWorkflow(LoadLifecycleWorkflow, mock.Anything).Return(nil)
s.env.ExecuteWorkflow(LoadCreateWorkflow, wfParams)

(此处 s.env 是单元测试的 TestWorkflowEnvironment):

import (
...
"go.temporal.io/sdk/testsuite"
)

type UnitTestSuite struct {
suite.Suite
testsuite.WorkflowTestSuite

env *testsuite.TestWorkflowEnvironment
}

func (s *UnitTestSuite) SetupTest() {
s.env = s.NewTestWorkflowEnvironment()
}

运行测试时出现错误: panic :无法找到工作流类型:LoadLifecycleWorkflow。支持的类型:[LoadCreateWorkflow]

在我的工作流程模块的 init 函数中,我注册了它和子工作流程:

worker.RegisterWorkflow(LoadCreateWorkflow)
worker.RegisterActivity(CreateLoadActivity)
worker.RegisterWorkflow(LoadLifecycleWorkflow)

为什么我会收到 LoadLifecycleWorkflow 未注册的错误?如何修复该错误?

最佳答案

子工作流必须注册到临时TestWorkflowEnvironment:

s.env.RegisterWorkflow(LoadLifecycleWorkflow)

测试工作流程环境是一个不同的环境,仅用于编写测试,因此您希望工作流程在测试中调用的任何子工作流程都应注册到此环境。

关于go - 为调用子工作流程的工作流程编写测试时出现临时错误 : "unable to find workflow type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69562169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com