对于测试vue2,我使用testcafe
运行测试的命令

testcafe firefox test/e2e/specs/ --app \"npm run dev\"
--app-init-delay 20000 -S -s test/e2e/screenshots

测试文件
import { ClientFunction, Selector } from 'testcafe';
const devServer = require('../../../webpack/devServer');

fixture(`Getting Started`)
// Load the URL your development server runs on.
    .page(`http://localhost:${devServer.port}/#/login`);

test('test login', async t => {
    const userSelector = await new Selector('.login-squere input[type="text"]');
    const passSelector = await new Selector('.login-squere input[type="password"]');
    const logiIn = await new Selector('.login-squere button');
    await t.typeText(userSelector, 'manager')
        .typeText(passSelector, 'manager')
        .click(logiIn);
});

我希望在之后。单击(登录)站点以路由到//projects,但什么也没有发生
我加入了测试
await t.typeText(userSelector, 'manager')
        .typeText(passSelector, 'manager')
        .click(logiIn)
        .navigateTo(`http://localhost:${devServer.port}/#/projects`);

又一次没有结果。如果将.page设置为//projects,则会重新路由以登录。
所以我只能测试登录页面,因为我不能让testcafe将vue路由到下一个视图。
只有在登录点击后我们有了ajax,这个问题才会出现。TestCafe没有请求处理程序,因此最好为E2E尝试其他方法

最佳答案

试试这个:

test('login', async t => {
  await login(t);
});

并将代码分成一个新函数:
const login = async t => {
  const userSelector = await new Selector('.login-squere input[type="text"]');
    const passSelector = await new Selector('.login-squere input[type="password"]');
    const logiIn = await new Selector('.login-squere button');
    await t.typeText(userSelector, 'manager')
        .typeText(passSelector, 'manager')
        .click(logiIn);
};

关于testing - 从Testcafe控制vue导航,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44890538/

10-13 02:18