当前位置: 首页 > 知识库问答 >
问题:

如何在测试中访问剧作家测试转轮项目信息?

南门洋
2023-03-14

我正在写一个测试来注册我网站上的用户。使用@playright/test,我在playright中定义了几个不同的项目。配置。ts:

{
  name: 'iPhone 12 Pro',
  use: devices['iPhone 12 Pro'],
},
{
  name: 'iPhone 12 Pro Max',
  use: devices['iPhone 12 Pro Max'],
},
{
  name: 'iPhone 5/SE',
  use: devices['iPhone SE'],
},

我的测试如下所示:

test('Register a user', async ({ page }) => {
  // Go to baseUrl/webapp/
  await page.goto(`${baseUrl}webapp/`);

  // Click the register tab.
  await page.click('ion-segment-button[role="tab"]:has-text("Register")');
  await page.click('input[name="mail"]');
  // @TODO: How do I get the project name here?
  await page.fill('input[name="mail"]', `test@example.com`);
  // Press Tab
  await page.press('input[name="mail"]', 'Tab');
  await page.fill('input[name="pass"]', 'password');

但是,当我运行此测试时,它只对第一个工作人员有效,因为您只能注册一次电子邮件地址。

因此,我想做的是在我的测试中访问项目名称(例如,iphone12pro),以便我可以将其转换为电子邮件地址,以便每次运行测试时,它都会根据项目名称注册用户。

如何在剧作家测试中获得项目名称?

我阅读了剧作家关于workerInfo对象的文档,但我不知道如何在测试中应用它。

共有1个答案

巫坚白
2023-03-14

您可以像这样访问workerInfo作为第二个参数,在这种情况下,您可以使用它使您的电子邮件对每个工作人员都是唯一的:

test('Register a user', async ({ page }, workerInfo) => {
  // Go to baseUrl/webapp/
  await page.goto(`${baseUrl}webapp/`);

  // Click the register tab.
  await page.click('ion-segment-button[role="tab"]:has-text("Register")');
  await page.click('input[name="mail"]');
  await page.fill('input[name="mail"]', `test-user-${workerInfo.workerIndex}@example.com`);

您还可以通过workerInfo.project.name获取项目名称。

更多信息请参见此处。

 类似资料:
  • 我尝试过剧作家页面对象文档和几个youtube视频关于这个主题。我也读过GitHub问题(github页面对象问题),但当有不止一个页面对象类时,仍然存在实现页面对象模型的问题。我理解一个简单的类和测试文件,但是如果有人能帮助我,当我想在另一个页面类中实例化一个页面类或者继承它时,那将是非常感激的。我想在特定方法之外的另一个类中实例化一个页面类,这样我就可以在多个方法中使用该实例。我希望有一个样板

  • 问题内容: 该命令仅覆盖一个目录中的文件。 我想要整个项目,这意味着测试应覆盖dir中的所有文件以及该dir下的所有千岁树dir 。 这样做的命令是什么? 问题答案: 这应该在当前目录及其所有子目录中运行所有测试: 这应该针对给定的特定目录运行所有测试: 这应该以前缀为的导入路径运行所有测试: 这应该运行所有带有前缀的测试导入路径: 这应该在$ GOPATH中运行所有测试:

  • 测试 Android Library 项目类似于测试应用项目。唯一的不同点在于整个库(包括它的依赖)都是自动作为依赖库被添加到测试应用中。结果就是测试 APK 不单只包含自身的代码,还包含了 Library 项目以及它依赖的代码。Library 的 manifest 被组合到测试应用的 manifest 中(引用这个 Library 的项目作为容器)。androidTest task 变为只执行安

  • 我想通过剧作家选择一个选项,但我不能选择一个选项。什么是错的? 梅 测试

  • testng.xml TestNG将扫描所有类路径以寻找测试类(PackageUtils#findClassesInPackage)。 不需要的测试来自依赖项。 如何配置TestNG以只在maven项目测试目录中查找测试类(默认编译为)?

  • 排他性功能允许您通过附加到函数来仅运行指定的套件或测试用例.only()。这是仅执行特定套件的示例: describe('Array', function() { describe.only('#indexOf()', function() { // ... }); }); 注意:仍将执行所有嵌套套件。 以下是执行单个测试用例的示例: describe('Array', function()