在量角器中使用套件名称的外部文件

时间:2016-09-28 21:38:09

标签: selenium protractor

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

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

$dt1 = New-Object System.Data.DataTable
$dt1.Columns.Add("Make") > $null
$dt1.Columns.Add("Model") > $null
$dt1.Columns.Add("Year") > $null
$dt1.Rows.Add("Ford","Mustang","2010") > $null
$dt1.Rows.Add("Ford","Mustang","2011") > $null
$dt1.Rows.Add("VW","Golf","2016") > $null

$dt2 = New-Object System.Data.DataTable
$dt2.Columns.Add("Make") > $null
$dt2.Columns.Add("Model") > $null
$dt2.Columns.Add("Year") > $null
$dt2.Rows.Add("Ford","Fiesta","2010") > $null
$dt2.Rows.Add("Ford","Mustang","2011") > $null
$dt2.Rows.Add("VW","Golf","2016") > $null

#Load $dt2-values into $dt1
$dt1.Merge($dt2)

#Show merged table
$dt1

Make Model   Year
---- -----   ----
Ford Mustang 2010
Ford Mustang 2011
VW   Golf    2016
Ford Fiesta  2010
Ford Mustang 2011
VW   Golf    2016

#Get distinct values only (distinct rows for make, model and year)
$dt1.DefaultView.ToTable($true,"Make","Model","Year")

Make Model   Year
---- -----   ----
Ford Mustang 2010
Ford Mustang 2011
VW   Golf    2016
Ford Fiesta  2010

现在我想在protractor.conf.js中使用这个Json文件 我导入了JSON文件:

module.exports = {
Suites: 
Smoke: 'File1.spec.js','File2.spec.js',
Main: 'File1.spec.js','File2.spec.js','File3.spec.js'
}

现在如果我想在我的实际Conf文件中找到我们,我不知道如何使用它。

我应该说:

var SuiteFile = require('../Suites.json')

有人可以确认一下吗?

1 个答案:

答案 0 :(得分:4)

是的,绝对可以做这样的事情。 有关详细信息,请参阅my blog帖子

步骤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以使用此文件中的信息

var suitesFile = require('./suites.js');

exports.config = {
    suites: suitesFile.suitesCollection,

更新:如果需要为套件使用Json Feed,请参阅下面的

步骤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(",")
},

OR 如果你需要用JSON完全构造Suites对象(当你甚至不知道套件名称时)

量角器配置文件

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