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脚本获取。