TestCafe - testcafe 和应用程序之间的共享单例
TestCafe - Shared singleton between testcafe and application
我有一个应用程序 运行 Vue
,我正在使用 testcafe
进行端到端测试。
MyModule.ts
class MyModule {
public value: string;
constructor() {}
}
export default new MyModule();
测试网吧文件
import MyModule from '../models/utils/MyModule';
fixture('Getting Started')
.page('http://localhost:8080/en/home/')
.before(async (ctx) => {
MyModule.value = 'Set by Test Cafe';
});
test('Get to the home page', async (t) => {
....
});
App.vue
<template>.....</template>
<script>
import TeMyModulestModule from '@/test/e2e/models/utils/MyModule';
export default {
created() {
console.log('MyModule.value', MyModule.value);
}
}
</script>
实际结果
MyModule.value undefined
预期结果
MyModule.value 'Set by Test Cafe'
问题
可以用testCafe实现吗?如果是这样,我做错了什么?
TestCafe 测试夹具是一个常规的 node.js 脚本,它在服务器端执行。您正在尝试在不同的上下文(node.js server-side 和浏览器 client-side)之间共享您的模块。
可以通过ClientFunction or Inject Client Scripts的方式将指定值放入全局window
对象中,通过Vue脚本获取。
我有一个应用程序 运行 Vue
,我正在使用 testcafe
进行端到端测试。
MyModule.ts
class MyModule {
public value: string;
constructor() {}
}
export default new MyModule();
测试网吧文件
import MyModule from '../models/utils/MyModule';
fixture('Getting Started')
.page('http://localhost:8080/en/home/')
.before(async (ctx) => {
MyModule.value = 'Set by Test Cafe';
});
test('Get to the home page', async (t) => {
....
});
App.vue
<template>.....</template>
<script>
import TeMyModulestModule from '@/test/e2e/models/utils/MyModule';
export default {
created() {
console.log('MyModule.value', MyModule.value);
}
}
</script>
实际结果
MyModule.value undefined
预期结果
MyModule.value 'Set by Test Cafe'
问题
可以用testCafe实现吗?如果是这样,我做错了什么?
TestCafe 测试夹具是一个常规的 node.js 脚本,它在服务器端执行。您正在尝试在不同的上下文(node.js server-side 和浏览器 client-side)之间共享您的模块。
可以通过ClientFunction or Inject Client Scripts的方式将指定值放入全局window
对象中,通过Vue脚本获取。