首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将mocha与inquirer.js结合使用

如何将mocha与inquirer.js结合使用
EN

Stack Overflow用户
提问于 2020-10-14 13:43:41
回答 1查看 32关注 0票数 0

我希望让我的自动化测试更灵活一些。我有一个QA团队,他们不知道太多的javascript,可能必须为没有或很少编程技能的用户设计测试。

我使用mocha测试框架和spectron.js (对于使用electrion.js构建的应用程序)创建了一些脚本,测试产品的一些功能,我不想在每次运行脚本时都运行每一个单独的测试。我的临时解决方案是将测试捆绑到一个函数中作为“套件”。就像这样-

代码语言:javascript
复制
function DiagnosticSuite(location, workstation, workflowName){
    CreateWorkflow(location, workflowName); 
    SetWorkFlowToStation(location, workstation, workflowName);
    DiagnosticTestFlow();
    return;
}

function PowerflowSuite(imei, location, workstation, workflowName){
    SetWorkFlowToStation(location, workstation, workflowName);
    powerOffFlow(imei);
    return;
}

我正在考虑使用Inquirer并使用基于输入的条件来运行上面的测试之一。就像这样-

代码语言:javascript
复制
inquirer.prompt([
    {
        type: 'list',
        name: 'Which workflow do you want to run?',
        choices: ['Power Off', 'Diagnostic']
    }
]).then((answers) => { 
     if(answers == 'Power Off'){
          PowerflowSuite(imei, location, workstation, workflowName);
     }   
})

但是,当我测试Mocha时,它似乎并没有等待用户从inquerior输入来运行测试,我得到的输出是这样的:

代码语言:javascript
复制
$ npm test

> metistests@1.0.0 test C:\Users\DPerez1\Desktop\metis-automation
> mocha

? Which workflow do you want to run?: (Use arrow keys)
> Power Off
  Diagnostic

  0 passing (0ms)

它好像在运行,看不到任何测试和结束,当我选择答案时,程序就会关闭。

我想知道为什么Mocha要这样做,是否可以使用inquirer这样的库来运行我现有的mocha脚本。

EN

回答 1

Stack Overflow用户

发布于 2020-10-20 23:28:06

所以我找到了我的问题的解决方案,以防有人在这里跌倒并感到疑惑。

我在package.json文件中将CLI部分和Mocha部分分离到不同的脚本中。这样,我就可以使用Nodes子进程库来运行mocha部分,并通过process.argv对象传递来自CLI部分的信息。

因此,CLI部分将询问我要运行什么测试、什么环境和什么用户。我创建了一个命令来放置子进程exec函数(我认为还有其他可用的函数,但并不重要)。当mocha测试运行时,我解析argv并将它们传递给函数,以便测试可以基于它运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64347296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档