为了测试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);
});
我希望在.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
尝试其他方法答案 0 :(得分:1)
试试这个:
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);
};