Node.js 获取DialogSet.add():测试时添加的对话框无效

Node.js 获取DialogSet.add():测试时添加的对话框无效,node.js,mocha.js,botframework,Node.js,Mocha.js,Botframework,我正在尝试为我的机器人对话框构建一些测试。我使用相同的测试代码和修改的测试数据,使用两个具有相同对话框名称的不同机器人。因此,test.js文件对于两个机器人程序都是相同的。但是,当我试图在第二个bot上通过Mocha运行测试时,我得到一个错误:DialogSet.add:添加的对话框无效。每个测试的消息。这不会发生在我的第一个机器人上。我甚至试着用第一个机器人中的对话框文件替换第二个机器人中的对话框文件,但仍然出现同样的错误。因此,我在机器人之间找不到任何不同之处。我甚至用第一个bot中的文件

我正在尝试为我的机器人对话框构建一些测试。我使用相同的测试代码和修改的测试数据,使用两个具有相同对话框名称的不同机器人。因此,test.js文件对于两个机器人程序都是相同的。但是,当我试图在第二个bot上通过Mocha运行测试时,我得到一个错误:DialogSet.add:添加的对话框无效。每个测试的消息。这不会发生在我的第一个机器人上。我甚至试着用第一个机器人中的对话框文件替换第二个机器人中的对话框文件,但仍然出现同样的错误。因此,我在机器人之间找不到任何不同之处。我甚至用第一个bot中的文件替换了测试、测试数据/对话和对话框本身中所有有问题的文件,但仍然得到了相同的错误。最后,所有botbuilder包和其他依赖项在机器人程序之间都是相同的版本。我在这里不知所措……有人有什么想法吗

这是正在调用的对话框。我省略了实际的对话框步骤,但这与问题无关,因为所有的对话框添加活动都发生在构造函数中

const{TextPrompt、ChoicePrompt、confirmport、ChoiceFactory、ComponentDialog、WaterWallDialog、DialogSet、DialogTurnStatus}=require'botbuilder-dialogs'; const{VistaServiceHelper}=require'../helpers/VistaServiceHelper'; const{TrackingServiceHelper}=require'../helpers/TrackingServiceHelper'; const{CosmosDbStorage}=require'botbuilder-azure'; 常量行提示='linePrompt'; 常量ORDER_PROMPT='orderPrompt'; 常量标准提示='criteriaPrompt'; const SEARCH_CRITERIA=['GO','PO']; 常量瀑布对话='WaterwallDialog'; const CONFIRM_PROMPT='confirmport'; //静态文本 const escalateMessage=`此处为升级消息` 常数msDay=86400000; 类viewOrderDialog扩展ComponentDialog{ constructordialogId,userDialogStateAccessor,userState{ 超级对话ID; this.addDialognew ChoicePromptCRITERIA_提示符; this.addDialognew TextPromptORDER\u提示符; this.addDialognew TextPrompline_提示符,this.validateLineNumber; this.addDialognew ConfirmPromptCONFIRM_提示符; this.addDialognew WaterAllDialog瀑布_对话框[ this.requestOrderNumber.bindthis, this.selectSearchCriteria.bindthis, this.displayLineItems.bindthis, this.displayLineStatus.bindthis, this.loopStep.bindthis ]; this.initialDialogId=瀑布_对话框; this.integrationLog=新的宇宙数据库{ serviceEndpoint:process.env.ACTUAL_SERVICE_ENDPOINT, authKey:process.env.ACTUAL\u AUTH\u KEY, databaseId:process.env.DATABASE, collectionId:“集成日志” }; this.queryData={}; }//结束构造函数
我可以通过删除项目的node_modules文件夹中的botbuilder测试文件夹并重新运行npm install botbuilder测试来修复此问题,尽管我已经确认package.json和package-lock.json中的版本显示了最新版本,并且已经运行了npm install和npm update


看来这确实是由于某种原因造成的,只是完全删除了文件夹并重新安装修复了它。

您可能还需要在package.json文件中验证botbuilder的版本,因为所有这些包必须是同一版本

例:


不确定为什么它在其中一个中工作,而在另一个中不工作。你能分享这个对话框吗?可能还需要你的DialogTestClient,这样我就能看到它是如何传递的。如果你能链接到回购协议,那可能会更容易。我在代码中看到了这一点,但我不明白为什么我在一个bot中有问题。我的一个同事说他得到了同样的错误,并通过将所有botbuilder包更新为最新版本来修复,但我检查了所有错误,包括botbuilder测试中的botbuilder对话框,均为4.5.3。我只是尝试邀请您参加repo。我似乎没有收到邀请。您尝试了吗?将对话框构造函数添加到原始问题中。
"botbuilder": "~4.10.3",
"botbuilder-ai": "~4.10.3",
"botbuilder-dialogs": "~4.10.3",
"botbuilder-testing": "~4.10.3",