小编Boh*_*anN的帖子

剧作家:.toBeVisible() 超时被忽略

我在 Playwright 1.18 toBeVisible() 期望中遇到了不明确的行为。这是测试行:

await expect(this.page.locator('.top-row .close i')).toBeVisible({timeout: 2000 })
Run Code Online (Sandbox Code Playgroud)

如果该元素不可见,它将永远挂起。

如果我跳到代码中toBeTruthy.js -> toBeTruthy,我会看到尽管收到了选项,超时仍计算为 0:

在此输入图像描述

由于某种原因,当前超时_toMatchText。这是一个错误还是我做错了什么?

包.json:

"devDependencies": {
    "@playwright/test": "^1.18",
    "allure-commandline": "^2.17.2",
    "allure-playwright": "^2.0.0-beta.14",
    "rimraf": "3.0.2"
  }
Run Code Online (Sandbox Code Playgroud)

编剧配置:

import { PlaywrightTestConfig, devices } from '@playwright/test';

const config: PlaywrightTestConfig = {
  testDir: './spec',
  timeout: 10 * 1000,

  expect: {
    timeout: 3 * 1000
  },

  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  workers: process.env.CI ? 5 : 1,

  reporter: [
    ['line'],
    ['json', { outputFile: './test-results/results.json' …
Run Code Online (Sandbox Code Playgroud)

javascript automated-tests playwright playwright-test

8
推荐指数
0
解决办法
5685
查看次数

测试失败后如何强制 Maven 执行下一个目标

我正在使用surefire插件对项目进行测试,然后需要使用“站点”目标生成报告,即使测试失败。

问题是,默认情况下,surefire 会在测试失败的情况下强制构建失败,并且不会执行进一步的目标。所以我将以下配置设置为surefire:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire.version}</version>
        <configuration>
            <testFailureIgnore>true</testFailureIgnore>
        </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

这很有效,并且“站点”目标始终被执行,但在这种情况下,构建状态始终为“成功”,因此我无法设置电子邮件通知。

在“测试”目标之后是否有正确的方法来执行下一个目标而不忽略surefire插件中的失败?

java testing pom.xml maven

5
推荐指数
1
解决办法
5377
查看次数

为 Jenkins 多分支管道中的每个分支设置通用构建参数

我有一个 Jenkins 多分支项目和 Jenkins 管道文件所在的几个分支。我还有几个通用参数,这些参数对于每个分支都是实际的(例如要运行的测试组、硒属性等)

如何在 Jenkins 界面中定义这些参数集,以便它们会在每次分支运行时出现,以便每个新分支自动变为“参数化构建”?我可以在特定分支构建的配置中看到这个标志(虽然无法保存):

在此处输入图片说明

但不在多分支项目的配置中。

詹金斯 2.89.3

git jenkins jenkins-pipeline multibranch-pipeline

5
推荐指数
1
解决办法
3058
查看次数

魅力报告。使用AfterMethod将屏幕截图添加到错误的报告中

在我的项目中,我有maven和TestNG工具。我正在尝试将屏幕截图添加到“魅力”报告中。如果我直接从测试中调用带有“ @Attachment”注释的方法,则一切正常。

但是,如果我在“ @AfterMethod”部分中将其称为屏幕截图,则会将其添加到错误的报告中并混在一起。

在这两种情况下,都会生成屏幕截图并将其正确保存在磁盘上。

我已经在这里看到了这个问题: 魅力框架:TestNG适配器错误地将@AfterMethod放置在报告中

而且我想,我的困难可能是因为TestNG适配器。

调用“ @Attachment”方法的正确方法是什么?为了避免此问题,我必须使用什么适配器?也许有人可以为我提供一个示例,该示例仅在测试失败的情况下使用ITestListener制作屏幕截图?

testng automated-tests allure

2
推荐指数
1
解决办法
2454
查看次数

将函数应用于 Java 中的 while 循环

我有一个while循环,它应该在 whilecondition1为真或 whilecondition2为真时运行。12case 取决于一些初始布尔条件。

现在我将其实现为一个三元运算符,但我想了解如何使用 Predicate 和 lambda 表达式来完成此操作。有人可以提供一个例子吗?如何声明一个函数变量并将其放入while循环条件中?

boolean initialCondition = stopBtn.getText().length() > 0;

while(initialCondition ? stopBtn.waitToBeHidden() : stopBtn.isDisplayed()) {
    if (a++ < 5) {
        stopBtn.click();
    }
}
return this;
Run Code Online (Sandbox Code Playgroud)

java lambda predicate function

2
推荐指数
1
解决办法
748
查看次数