Javascript 在conf.js的插件配置中使用量角器参数值
我想让我的量角器屏幕快照插件创建以规范名为目录名的报告目录。运行量角器时,规范名称将作为参数传递:Javascript 在conf.js的插件配置中使用量角器参数值,javascript,node.js,protractor,report,Javascript,Node.js,Protractor,Report,我想让我的量角器屏幕快照插件创建以规范名为目录名的报告目录。运行量角器时,规范名称将作为参数传递: 量角器——规格my_spec.jsconf.js 调用上述命令后,我希望在目录my_spec.js(或my_spec)中运行测试并创建报告。 插件的配置包含在conf.js中: plugins: [{ package: 'protractor-screenshoter-plugin', screenshotOnExpect: 'failure+success', scree
量角器——规格my_spec.jsconf.js
调用上述命令后,我希望在目录my_spec.js(或my_spec)中运行测试并创建报告。
插件的配置包含在conf.js中:
plugins: [{
package: 'protractor-screenshoter-plugin',
screenshotOnExpect: 'failure+success',
screenshotOnSpec: 'failure',
withLogs: false,
htmlReport: true,
screenshotPath: '',//I would like to put the --specs parameter value here
writeReportFreq: 'end',
clearFoldersBeforeTest: true
}]
有什么办法吗?如何在conf.js中访问量角器的'--specs'参数值?您可以使用
process.argv
访问触发量角器时传递的所有CLI参数,它将为您提供一个包含所有参数的数组
请参阅下面的Nodejs文档摘录
process.argv属性返回包含命令行的数组
启动Node.js进程时传递的参数。第一
元素将是process.execPath。如果要访问数据库,请参阅process.argv0
需要argv[0]的原始值。第二个元素是
正在执行的JavaScript文件的路径。其余要素
将是任何其他命令行参数
当执行量角器conf.js--spec demo2.js
conf.js
中的语句console.log(process.argv)
将输出如下内容
[ 'C:\\Program Files\\nodejs\\node.exe',
'C:\\Users\\aditya\\AppData\\Roaming\\npm\\node_modules\\protractor\\bin\\protractor',
'conf.js',
'--specs',
'demo2.js' ]
然后构建逻辑以提取所需的价值。在这种特定情况下,要获取specs
值(不带扩展名,以免发生文件名冲突),下面的函数会有所帮助
function getSpecsFromCLIArg() {
for (i = 0; i < process.argv.length; i++) {
if (process.argv[i] === '--specs') {
var specFile = process.argv[i + 1];
return specFile.substr(0, specFile.indexOf('.'));
}
}
}
console.log(getSpecsFromCLIArg())
plugins: [{
package: 'protractor-screenshoter-plugin',
screenshotOnExpect: 'failure+success',
screenshotOnSpec: 'failure',
withLogs: false,
htmlReport: true,
screenshotPath: getSpecsFromCLIArg(),
writeReportFreq: 'end',
clearFoldersBeforeTest: true
}]
函数getSpecsFromCLIArg(){
对于(i=0;ibrowser.params
访问命令行参数