Testing 为每个浏览器在钩子之前运行

Testing 为每个浏览器在钩子之前运行,testing,browser,automation,hook,testcafe,Testing,Browser,Automation,Hook,Testcafe,在TestCafé中,我希望在不同的浏览器中并行运行测试。每个会话都应该注册并使用不同的用户帐户登录 我试图用之前的钩子实现这一点: let user = null; fixture("My fixture") .page("http://localhost:8080") .before(() => { user = faker.internet.email(); }); test("login", async t => { // using user i

在TestCafé中,我希望在不同的浏览器中并行运行测试。每个会话都应该注册并使用不同的用户帐户登录

我试图用
之前的
钩子实现这一点:

let user = null;

fixture("My fixture")
  .page("http://localhost:8080")
  .before(() => {
    user = faker.internet.email();
  });

test("login", async t => {
  // using user in here
});
但是,这个钩子只对所有浏览器执行一次,我需要为每个浏览器运行它,这样每次我都可以有不同的凭证

这是否可行

这是NPM脚本:


testcafe-firefox、chrome、edge-tests.js
是的,您可以使用
beforeach
挂钩来实现此目的。

我重新考虑了这个解决方案,认为您可以在场景中使用TestCafe功能。您可以为不同的浏览器创建单独的角色,然后根据
userAgent
字符串在
beforeach
钩子中选择其中一个。下面介绍如何使用客户端函数获取
userAgent

谢谢,这确实适用于每个浏览器,但每个测试之前都会运行
beforeach
钩子。我的夹具中有不止一个测试,我想在它们之间共享
用户
数据。看起来
before
钩子正是为了这个目的而工作的,但是我遇到了浏览器问题。。。有什么想法吗?我重新组织了我的测试,现在这个解决方案正在为我工作,谢谢!