我有一个以不同模式运行的应用程序(将其视为针对不同平台运行以及使用不同协议),其中一个在每次打开页面时都有很长的加载时间。还有一些其他的小改动,但所有这些改变都可以使用wdio的设置变量。
目前,我为应用的每个部分提供了一个测试文件(带有描述)。如果正在测试的配置之一没有这么长的等待时间,那就没问题。无论如何,我已经决定处理这个测试用例,在一个文件中处理它,它们都在同一页面上。
无论如何,我没有复制和粘贴我以前对这个大文件的所有测试,而是想知道我是否可以以某种方式重用它们,就像它们是函数一样。
就像现在一样,我只是在函数中包装东西,例如:
// test1.js
module.exports = function test1 () {
describe('Test1', function () {
var settings = {}
before(function () {
// do something
})
it('do something', function () {
assert.ok(true)
})
it('do something else', function () {
assert.ok(true)
})
})
}
在另一个文件中,我们运行我们创建的每个函数:
test1 = require('./test1')
test2 = require('./test2')
...
test10 = require('./test10')
describe('Main Test', function () {
test1()
test2()
...
test10()
}
如果我能以某种方式选择使用
命令运行哪些测试功能,这将解决我的DRY问题wdio wdio / wdio.conf.js --specs wdio /测试/重视域/浏览器/ test1.js
这显然不起作用。
基本上我想要一个能够重用我的测试(描述块)的解决方案。我正在做正确的道路吗?如果没有,应该怎么做?
答案 0 :(得分:2)
所以在我找到一些关于它的文档here之后,我已经找到了解决这个问题的最佳方法。
我将按照之前的描述进行操作,但不是将所有这些函数推送到同一个文件中,而是将它们保存在自己的文件中。那里仍然可能有更好的解决方案,但是对于运行我的应用程序的不同模式复制和粘贴所有测试用例仍然有所改进。
答案 1 :(得分:0)
只需以编程方式创建不同的描述块。将describe块包含在一个函数中,其中包含所有更改的参数(包括块的名称),并简单地调用该函数来创建变体。