该网址显示了WebdriverIO测试运行程序配置
https://webdriver.io/docs/configurationfile.html
它有很多钩子。考虑我想写一个函数的钩子onComplete
,可能是a function to create a file
。在另一个文件中,在onComplete
挂钩中调用该函数。你能帮我实现这个目标吗?
答案 0 :(得分:0)
是的,您几乎描述了流程。
在文件中定义功能并导出:
import HomeScreen from "../screens/HomeScreen";
import DashboardScreen from "../screens/DashboardScreen";
然后,将其导入所需的钩子中(例如例如,对于 custom_command ,module.exports = (() => {
/** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* > Def: Polls the DOM until the given 'desiredState' is found.
* @param {string} desiredState ['loading', 'interactive', 'complete']
* @returns {Promise} WebdriverIO Promise
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
browser.addCommand('waitForReadyState', (desiredState) => {
let foundState;
browser.waitUntil(() => {
foundState = browser.execute('return document.readyState;');
console.log(`\n> Waiting for page to load ... | Current state: '${foundState}'`);
return foundState === desiredState;
}, browser.options.waitforTimeout, `Timeout before expected state! Found: '${foundState}' | Expected: '${desiredState}'`);
});
})();
钩子):
before
您可以轻松地重现模型,以实现需要在before: function (capabilities, specs) {
require('./test/custom_commands/waitForReadyState');
}
挂钩中运行的日志记录和文件操作功能。
答案 1 :(得分:0)
可能晚了,但是您可以通过以下方法来完成它:
/ **文件以使您的功能保持在es5中,或者您必须在WebdriverIO启动** /
之前添加babel使其隐蔽到es6中。test.js
module.exports = function foo(){
console.log('here');
}
在配置文件中//在export.config之前:
const foo = require('path-to-test.js');
在onComplete()挂钩中使用foo()