Selenium 在量角器中使用外部文件作为套件名称

Selenium 在量角器中使用外部文件作为套件名称,selenium,protractor,Selenium,Protractor,我需要一些帮助来参数化我的测试套件 我想创建一个Json文件Suites.Json并在此文件中定义Suites module.exports = { Suites: Smoke: 'File1.spec.js','File2.spec.js', Main: 'File1.spec.js','File2.spec.js','File3.spec.js' } var suitesFile = require('./suites.js'); exports.config = { suit

我需要一些帮助来参数化我的测试套件

我想创建一个Json文件Suites.Json并在此文件中定义Suites

module.exports = {
Suites: 
Smoke: 'File1.spec.js','File2.spec.js',
Main: 'File1.spec.js','File2.spec.js','File3.spec.js'
}
var suitesFile = require('./suites.js');

exports.config = {
    suites: suitesFile.suitesCollection,
现在我想在gragrator.conf.js中使用这个Json文件 我导入了JSON文件:

var SuiteFile = require('../Suites.json')
现在,如果我想在我的实际Conf文件中使用我们,我不知道如何使用它

我应该说:

suites: SuitesFile

有人能确认一下吗?

是的,这样做肯定是可能的。 更多信息请参考帖子

步骤1:使用套件创建js文件

module.exports = {
suitesCollection: {
    smoke: ['File1.spec.js','File2.spec.js',],
    sanity: ['File1.spec.js','File2.spec.js','File3.spec.js'],
    demo: ['demo.js']
}
}
步骤2:导入js文件并指向exports.config.suites以使用此文件中的信息

module.exports = {
Suites: 
Smoke: 'File1.spec.js','File2.spec.js',
Main: 'File1.spec.js','File2.spec.js','File3.spec.js'
}
var suitesFile = require('./suites.js');

exports.config = {
    suites: suitesFile.suitesCollection,
更新:如果需要为套件使用Json提要,请参考下面的内容

步骤1:创建一个JSON文件,其中包含套件的键值对

{
  "smoke": "demo.js,demo2.js",
  "sanity": "demo2.js,demo.js,demo3.js",
  "demo": "demo.js"
}
步骤2:导入JSON并相应地编辑配置文件。如果您还希望生成套件名称,请创建一个自定义函数来迭代JSON并构建套件

var suitesJson = require('./suites.json');

    exports.config = {
    suites: {
    smoke: suitesJson.smoke.split(","),
    sanity: suitesJson.sanity.split(","),
    demo: suitesJson.demo.split(",")
},
以防您需要完全用JSON构建套件对象(当您甚至不知道套件名称时)

量角器配置文件

var suitesJson = require('./suites.json');
var suitesAll = {}
for(var myKey in suitesJson) {
    suitesAll[myKey] = suitesJson[myKey].split(",");
}
    exports.config = {
    suites: suitesAll,

是的,这样做是绝对可能的。 更多信息请参考帖子

步骤1:使用套件创建js文件

module.exports = {
suitesCollection: {
    smoke: ['File1.spec.js','File2.spec.js',],
    sanity: ['File1.spec.js','File2.spec.js','File3.spec.js'],
    demo: ['demo.js']
}
}
步骤2:导入js文件并指向exports.config.suites以使用此文件中的信息

module.exports = {
Suites: 
Smoke: 'File1.spec.js','File2.spec.js',
Main: 'File1.spec.js','File2.spec.js','File3.spec.js'
}
var suitesFile = require('./suites.js');

exports.config = {
    suites: suitesFile.suitesCollection,
更新:如果需要为套件使用Json提要,请参考下面的内容

步骤1:创建一个JSON文件,其中包含套件的键值对

{
  "smoke": "demo.js,demo2.js",
  "sanity": "demo2.js,demo.js,demo3.js",
  "demo": "demo.js"
}
步骤2:导入JSON并相应地编辑配置文件。如果您还希望生成套件名称,请创建一个自定义函数来迭代JSON并构建套件

var suitesJson = require('./suites.json');

    exports.config = {
    suites: {
    smoke: suitesJson.smoke.split(","),
    sanity: suitesJson.sanity.split(","),
    demo: suitesJson.demo.split(",")
},
以防您需要完全用JSON构建套件对象(当您甚至不知道套件名称时)

量角器配置文件

var suitesJson = require('./suites.json');
var suitesAll = {}
for(var myKey in suitesJson) {
    suitesAll[myKey] = suitesJson[myKey].split(",");
}
    exports.config = {
    suites: suitesAll,

为什么不试试呢?套件应该是字符串数组,而不是您尝试使用逗号分隔的奇怪的非js符号。检查对象文字语法。为什么不试试?套件应该是字符串数组,而不是您尝试使用逗号分隔的奇怪的非js符号。查看对象文字语法。谢谢。效果很好。如果我把它放在json文件而不是.js文件中,你能告诉我有什么不同吗?我想将其保存在excel中,并在运行时导入以便于维护。是的,使用JSON也是非常可能的。我已经更新了答案谢谢你,再见。你是摇滚明星。最后一个问题——我不确定你是否为詹金斯工作过。也许我应该直接问詹金斯社区。我希望我的Jenkins在运行时以参数名显示烟雾、理智和演示。您知道我应该如何实现这一点吗?在上面的示例中,我不希望配置文件中包含套件的名称,这样我就可以修改我的全局套件文件,而不是进入每个conf.js文件。在json中是否可能像在js中那样?有什么方法可以分配整个集合而不是拆分它吗。。还有雷格·詹金斯。。是的,您可以拥有构建参数。。也许谷歌搜索能帮你完成。用JSON构建套件我已经更新了JSonTanks。效果很好。如果我把它放在json文件而不是.js文件中,你能告诉我有什么不同吗?我想将其保存在excel中,并在运行时导入以便于维护。是的,使用JSON也是非常可能的。我已经更新了答案谢谢你,再见。你是摇滚明星。最后一个问题——我不确定你是否为詹金斯工作过。也许我应该直接问詹金斯社区。我希望我的Jenkins在运行时以参数名显示烟雾、理智和演示。您知道我应该如何实现这一点吗?在上面的示例中,我不希望配置文件中包含套件的名称,这样我就可以修改我的全局套件文件,而不是进入每个conf.js文件。在json中是否可能像在js中那样?有什么方法可以分配整个集合而不是拆分它吗。。还有雷格·詹金斯。。是的,您可以拥有构建参数。。也许谷歌搜索能帮你完成。用JSON构建套件我已经更新了JSON