【发布时间】:2018-01-03 15:03:14
【问题描述】:
我有一个以不同模式运行的应用程序(将其视为针对不同平台运行以及使用不同协议),其中一个应用程序在每次打开页面时都有很长的加载时间。还有一些其他小的变化,但所有这些都可以使用 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/test/spects/browser/test1.js
这显然行不通。
基本上,我想要一个能够重用我的测试(描述块)的解决方案。我正在做的事情是正确的吗?如果没有,应该怎么做?
【问题讨论】:
-
很不清楚“同一页面上的一个文件”是什么意思。并且代码没有显示任何代码共享。
标签: javascript selenium-webdriver mocha.js e2e-testing webdriver-io