【发布时间】:2018-07-08 14:18:48
【问题描述】:
在 Jest 中运行 e2e 测试之前,我需要从服务器获取身份验证令牌。
是否可以全局执行此操作并以某种方式将其设置为每个测试的全局环境/上下文?
我用globalSetup 配置选项试了一下:
const auth = require('./src/auth')
const ctx = require('./src/context')
module.exports = () => {
return new Promise(res => {
auth.getToken()
.then(token => {
ctx.init({token})
global.token = token
res()
})
})
}
context.js
let _token
const init = ({token}) => {
_token = token
}
const getToken = () => {
return _token
}
module.exports = {
init,
getToken
}
但是global.token 和ctx.getToken() 都返回未定义。
我需要使用帮助脚本并将令牌作为 env var 传递,然后将其设置为 global。
"scripts": {
"test": "TOKEN=$(node src/get-token.js) jest"
},
有没有更好的方法(不涉及shell)?
【问题讨论】:
标签: javascript jestjs e2e-testing