我在 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) 我正在使用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插件中的失败?
我有一个 Jenkins 多分支项目和 Jenkins 管道文件所在的几个分支。我还有几个通用参数,这些参数对于每个分支都是实际的(例如要运行的测试组、硒属性等)
如何在 Jenkins 界面中定义这些参数集,以便它们会在每次分支运行时出现,以便每个新分支自动变为“参数化构建”?我可以在特定分支构建的配置中看到这个标志(虽然无法保存):
但不在多分支项目的配置中。
詹金斯 2.89.3
在我的项目中,我有maven和TestNG工具。我正在尝试将屏幕截图添加到“魅力”报告中。如果我直接从测试中调用带有“ @Attachment”注释的方法,则一切正常。
但是,如果我在“ @AfterMethod”部分中将其称为屏幕截图,则会将其添加到错误的报告中并混在一起。
在这两种情况下,都会生成屏幕截图并将其正确保存在磁盘上。
我已经在这里看到了这个问题: 魅力框架:TestNG适配器错误地将@AfterMethod放置在报告中
而且我想,我的困难可能是因为TestNG适配器。
调用“ @Attachment”方法的正确方法是什么?为了避免此问题,我必须使用什么适配器?也许有人可以为我提供一个示例,该示例仅在测试失败的情况下使用ITestListener制作屏幕截图?
我有一个while循环,它应该在 whilecondition1为真或 whilecondition2为真时运行。1或2case 取决于一些初始布尔条件。
现在我将其实现为一个三元运算符,但我想了解如何使用 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)