关键词:
我想在不同的环境和数据库上运行多个mocha测试。
暂定是创建两个单独的grunt配置:
grunt.initConfig(
// first one
mochaTest:
options: ... ,
src: ['test/server/*.js']
,
// second one
mochaTest:
options: ... ,
src: ['test/slave/*.js']
,
env:
dev: NODE_ENV: 'development' ,
test: NODE_ENV: 'test'
,
);
grunt.registerTask('test', function (target)
if (target === 'server')
return grunt.task.run([
'env:test',
'mochaTest' // the first one
]);
if (target === 'slave')
return grunt.task.run([
'env:dev',
'mochaTest' // the second one
]);
grunt.task.run([
'test:server',
'test:slave'
]);
);
当然,它不起作用,两个配置具有相同的名称。我试图通过mochaTest2
but重命名第二个配置,但grunt无法识别它。
然后,我尝试将它放在相同的mochaTest任务中,但测试在相同的环境和进程中运行。
grunt.initConfig(
mochaTest:
server:
options: ... ,
src: ['test/server/*.js']
,
slave:
options: ... ,
src: ['test/slave/*.js']
,
env:
dev: NODE_ENV: 'development' ,
test: NODE_ENV: 'test'
,
);
grunt.registerTask('test', function (target)
if (target === 'server')
return grunt.task.run([
'env:test',
'mochaTest:server'
]);
if (target === 'slave')
return grunt.task.run([
'env:dev',
'mochaTest:slave'
]);
grunt.task.run([
'test:server',
'test:slave'
]);
);
理想的解决方案应该在一个单独的过程中运行两个mochaTest(一个用于server
,另一个用于slave
)。
这可能有点非正统但你可以通过使用两个能够运行mocha测试的独立插件来解决你所描述的无法两次调用'mochaTest'的问题。
安装:
npm install -save grunt-simple-mocha
npm install --save grunt-mocha-test
加载:
grunt.loadNpmTasks('grunt-mocha-test');
grunt.loadNpmTasks('grunt-simple-mocha');
配置:
mochaTest:
test:
src: ['test/*serverTests*.js']
,
simplemocha:
options:
ui: 'bdd'
,
all: src: ['test/*slaveTests*']
注册任务:
grunt.registerTask('serverTests', ['mochaTest']);
grunt.registerTask('slaveTests', ['simplemocha']);
grunt.registerTask('allTests', ['mochaTest', 'simplemocha']);
执行:
grunt serverTests // run just server tests
grunt slaveTests // run just slave tests
grunt allTests // run both server and slave tests
我知道这是一个老问题,但是因为我在寻找相同的答案时自己偶然发现它,结果grunt-mocha-test
用子对象支持它。
例如,在这里您可以定义正在运行的服务器和从属测试,如下所示:
grunt.initConfig(
... // skipping other details
mochaTest :
server :
options: ... ,
src: ['test/server/*.js']
,
slave :
options: ... ,
src: ['test/slave/*.js']
);
然后你可以通过“:”指定子对象来运行它们
grunt mochaTest:server
要么
grunt.registerTask('slave', ['jshint', 'mochaTest:slave']);
Grunt 中的 NodeJS 环境变量
...题描述】:我正在将我的项目从简单的nodeserver.js转移到使用Grunt。我以前直接从webstorm运行我的应用程序,并且会为我设置环境变量。我怎样才能在Grunt中达到同样的效果?我需要从webstorm(windows)运行grunt,或者在运行grunt 查看详情
mocha单元测试框架简介
...可以在浏览器环境下运行,也可以在Node.js环境下运行。使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自动运行所有的测试,并给出测试结果。mocha的特点主要有:既可以测试简单的JavaScript函数,又可以测试... 查看详情
grunt的使用方法,环境配置和插件安装
...来越少了,但是插件数量还是相当多的,另外grunt和gulp的使用相当相似;grunt需要安装node和npm验证node是否安装:node-v验证npm是否安装:npm-v 下面是具体的使用方法:1》安装全局的配置环境npminstall-ggrunt-cli2》安装grunt在命令... 查看详情
对 Promise 结果运行多个测试 - Mocha
】对Promise结果运行多个测试-Mocha【英文标题】:RunningmultipletestsonPromiseresults-Mocha【发布时间】:2017-07-0614:34:30【问题描述】:我想对从Promise调用获得的结果运行一堆测试。我知道可以这样做:it(\'shouldpasstestfoo1\',()=>returnpromise... 查看详情
为 Mongoose 运行多个 Mocha 测试文件已损坏
】为Mongoose运行多个Mocha测试文件已损坏【英文标题】:RunningmultipleMochatestfilesforMongoosearebroken【发布时间】:2016-05-1206:30:00【问题描述】:根据AlexeyB.的评论,我修改了我的测试代码,发现导致我的测试代码出现相同错误的情况... 查看详情
如何适当地重用 mocha 测试的 describe 块?
...同模式运行的应用程序(将其视为针对不同平台运行以及使用不同协议),其中一个应用程序在每次打开页面时都有很长的加载时间。还有一些其他小的变化,但所有这些都可以使用wdio的设置变量来处理。目前我 查看详情
grunt-contrib-handlebars - 输出与我运行把手 npm 任务时不同
...:14【问题描述】:提前感谢您的时间和帮助。我正在尝试使用grunt-contrib-handlebars预编译把手(.hbs)模板当我运行运行任务时 查看详情
在 gruntfile 中执行 shell 脚本并将结果分配给变量
...riable【发布时间】:2013-08-2411:35:40【问题描述】:我正在使用grunt来管理一套mocha-run测试。mocha测试套件中要求的一件事是设置某些环境变量,以便根据运行测试的开发人员的环境正确执行测试。其中一个环境变量在每个开发人... 查看详情
用于开发/生产环境的备用 grunt.js 任务
】用于开发/生产环境的备用grunt.js任务【英文标题】:Alternategrunt.jstasksfordev/prodenvironments【发布时间】:2012-11-2719:44:13【问题描述】:我正在尝试设置我的grunt.js文件,以便它仅在我的生产服务器上运行时运行min任务-在我的本地... 查看详情
如何使用一个包含不同内容的模板和 grunt bake 创建单独的文件?
】如何使用一个包含不同内容的模板和gruntbake创建单独的文件?【英文标题】:Howtocreateseperatefilesusingonetemplatethatcontainsdifferentcontentwithgruntbake?【发布时间】:2018-02-1411:25:15【问题描述】:我有一个以某种方式设置样式的模板。... 查看详情
grunt环境搭建及使用
jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学、不用!1.前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过、但是不会熟练使用grunt,那你就真的真的真的out了(三个“真... 查看详情
如何使用 Mocha 运行单个测试?
】如何使用Mocha运行单个测试?【英文标题】:HowtorunasingletestwithMocha?【发布时间】:2012-06-0514:49:26【问题描述】:我使用Mocha来测试我的JavaScript内容。我的测试文件包含5个测试。是否可以运行特定测试(或一组测试)而不是文... 查看详情
更改 mocha 的默认超时
...27【问题描述】:如果我们有一个单元测试文件my-spec.js并使用mocha运行:mochamy-spec.js默认超时时间为2000毫秒。可以使用命令行参数覆盖部分测试:mochamy-spec.js--timeout5000是否可以全局更改所有测试的默认超时?即当您调用时,默... 查看详情
使用 mocha 时 getaddrinfo 无法解析主机文件中的地址
】使用mocha时getaddrinfo无法解析主机文件中的地址【英文标题】:getaddrinfofailstoresolveaddressinhostsfilewhenusingmocha【发布时间】:2014-04-2320:20:13【问题描述】:Node.js0.10.26OSX10.9.2(也在ubuntuvagrantbox上)在我系统上的两个不同模块中,... 查看详情
grunt-grunt使用(代码片段)
Grunt是前端的构建工具,类似后端使用的Ant,也是通过配置各种任务来达到前端代码自动构建的目地。Grunt和Grunt插件是通过npm 安装并管理的,npm是nodejs 的包管理器,所以第一步需要安装nodejs环境。安装grunt之前... 查看详情
使用 Mocha 进行测试:基于 Promise 的测试不会自行运行?
】使用Mocha进行测试:基于Promise的测试不会自行运行?【英文标题】:TestingexpresswithMocha:apromise-basedtestwillnotrunbyitself?【发布时间】:2017-01-1016:12:42【问题描述】:我有两个测试文件。当只存在test1.js时,不会运行任何测试,并且... 查看详情
需要使用一个 AWS CloudFormation 模板为不同的环境启动多个实例
】需要使用一个AWSCloudFormation模板为不同的环境启动多个实例【英文标题】:NeedMultipleinstancestobelaunchedfordifferentenvironmentsusingoneAWSCloudFormationTemplate【发布时间】:2019-10-0321:40:08【问题描述】:我需要构建3种不同类型的环境,每种... 查看详情
使用 mocha 运行节点检查器
】使用mocha运行节点检查器【英文标题】:Runnodeinspectorwithmocha【发布时间】:2017-04-2301:46:01【问题描述】:我似乎无法调试mocha脚本。我可以像node--inspectscript.js这样使用检查器运行节点。然后这给了我一个url去调试,比如chrome-de... 查看详情