Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Nightwatch.js中动态创建测试用例_Javascript_Testing_Nightwatch.js - Fatal编程技术网

Javascript 在Nightwatch.js中动态创建测试用例

Javascript 在Nightwatch.js中动态创建测试用例,javascript,testing,nightwatch.js,Javascript,Testing,Nightwatch.js,有没有办法在Nightwatch.js中动态创建测试用例 一个示例用例: 我想从测试引擎运行“一致性”测试套件,并使用Nightwatch.js从页面上简单地读取测试用例的结果。此时,我有一个单独的模块文件,每个测试用例定义为一个单独的函数: module.exports = { 'AudioContext' : function (browser) { // test's code }, ... 'MediaList.length' : fu

有没有办法在Nightwatch.js中动态创建测试用例

一个示例用例:

我想从测试引擎运行“一致性”测试套件,并使用Nightwatch.js从页面上简单地读取测试用例的结果。此时,我有一个单独的模块文件,每个测试用例定义为一个单独的函数:

module.exports = {
    'AudioContext' : function (browser) {
        // test's code
    },

    ...

    'MediaList.length' : function (browser) {
        // test's code
    }
};

当测试引擎中的“一致性”测试套件发生变化时(这种情况时有发生),我需要更新模块文件中的测试用例列表。我希望在这个模块文件中只有一个函数(例如before函数),它将读取页面作为第一步,并在运行时生成测试用例,因此我将始终拥有一个最新的测试套件。

事实证明,每个导出的函数都被视为测试用例函数(除了一些保留函数,如
之前
之后等)。下面是一个示例解决方案:

module.exports = {
    ...
};

(function() {
    var testCasesList = [
        // [testCaseID, testCaseName]
    ];

    function testFunction(browser, testCaseID) {
        // Generic test case body
    }

    function createTests(object) {
        function createFunction(testCaseID) {
            return function(browser) {
                testFunction(browser, testCaseID);
            };
        }

        for (var i = 0; i < testCasesList.length; i++) { 
            testCaseID = testCasesList[i][0];
            object[testCasesList[i][1]] = createFunction(testCaseID);
        }
    }

    createTests(module.exports);
})();
module.exports={
...
};
(功能(){
var testCasesList=[
//[testCaseID,testCaseName]
];
函数testFunction(浏览器,testCaseID){
//通用测试用例体
}
函数createTests(对象){
函数createFunction(testCaseID){
返回功能(浏览器){
testFunction(浏览器,testCaseID);
};
}
对于(var i=0;i
事实证明,每个导出的函数都被视为测试用例函数(除了一些保留函数,如
之前的
之后的
,等等)。下面是一个示例解决方案:

module.exports = {
    ...
};

(function() {
    var testCasesList = [
        // [testCaseID, testCaseName]
    ];

    function testFunction(browser, testCaseID) {
        // Generic test case body
    }

    function createTests(object) {
        function createFunction(testCaseID) {
            return function(browser) {
                testFunction(browser, testCaseID);
            };
        }

        for (var i = 0; i < testCasesList.length; i++) { 
            testCaseID = testCasesList[i][0];
            object[testCasesList[i][1]] = createFunction(testCaseID);
        }
    }

    createTests(module.exports);
})();
module.exports={
...
};
(功能(){
var testCasesList=[
//[testCaseID,testCaseName]
];
函数testFunction(浏览器,testCaseID){
//通用测试用例体
}
函数createTests(对象){
函数createFunction(testCaseID){
返回功能(浏览器){
testFunction(浏览器,testCaseID);
};
}
对于(var i=0;i
您知道这在运行时是否有效吗?这意味着可以生成和添加(并运行)测试用例在运行中?我有一个对URL进行爬网的测试,并对每个URL运行一个测试,我希望能够更好地组织它们。如果我理解正确,您可以用爬网程序代码替换我示例中的for循环,然后一次运行所有生成的测试。您知道这在运行时是否可行吗?这意味着可以生成并添加测试用例(并运行)在运行中?我有一个对URL进行爬网的测试,并对每个URL运行一个测试,我希望能够更好地组织它们。如果我理解正确,您可以使用爬网程序代码替换我示例中的for循环,然后一次运行所有生成的测试。