测试自动化是使用软件来控制测试的执行,实际结果与预测结果的比较,测试前提条件的设置以及其他测试控制和测试报告功能。通常,测试自动化涉及自动化已经使用正式测试过程(wikipedia.org)的手动过程。
TestCafe - 如何在失败时获取元素的 html 输出
当我运行测试时,如果没有一些繁重的工作,我目前无法在 Jenkins 中捕获屏幕截图。我想做的是获取正文的 HTML 输出,以查看特定时显示的内容...
连接 BK-880 LCR 表的 USB 接口;我希望我问过的问题...... 这些仪表是将 LCR 数据读取到我正在构建的测试站中的一种相当便宜的方法。 但界面很挑剔。 ...
我正在使用 SwiftUI 开发一个 iOS 应用程序,其数据记录包括大量的 URL 地址。 我正在开发一个 MacOS 实用应用程序,我将用它来编辑和维护 iOS 应用程序中的数据。 是...
在PhpStorm(最新,在Ubuntu 22.04上运行)中,我设置了默认的PHPUnit配置文件路径,但是当我创建新的运行配置时(例如当我单独运行时会自动发生...
如何对需要对外部服务进行 API 调用的 Python 类进行单元测试?
该类旨在包装远程托管的大型语言模型,并且必须对服务进行 API 调用以获取结果。这是一个例子。 类 ModelWrapper(AbstractLLMInterface): ...
单元测试失败,因为 fest.fn() 未触发 openConfirmationModal 函数
it('文本字段', async () => { 常量道具= { openConfirmationModal: jest.fn() } const { queryByTestId, findByTestId } = 渲染( it('text field', async () => { const props = { openConfirmationModal: jest.fn() } const { queryByTestId, findByTestId } = render( <FormInputs openConfirmationModal={props.openConfirmationModal} /> ); const input = queryByTestId('input-component-amount') as HTMLInputElement; expect(input).toBeInTheDocument(); fireEvent.change(input, { target: { value: 123 } }); const textArea = queryByTestId('textarea-component-textfield') as HTMLTextAreaElement; expect(textArea).toBeInTheDocument(); fireEvent.change(textArea, { target: { value: 'This is some text!' } }); const submitButton = queryByTestId('button') as HTMLButtonElement; expect(submitButton).toBeInTheDocument(); expect(submitButton).toBeEnabled(); fireEvent.click(submitButton); expect(props.openConfirmationModal).toHaveBeenCalledTimes(1); const submitModalButton = queryByTestId('confirmation-modal-submit-button') as HTMLButtonElement; expect(submitModalButton).toBeInTheDocument(); }); import React, { useState } from 'react'; interface FormInputsProps { openConfirmationModal: () => void; } const FormInputs: React.FC<FormInputsProps> = ({ openConfirmationModal }) => { const [amount, setAmount] = useState<string>(''); const [reason, setReason] = useState<string>(''); const [isModalOpen, setIsModalOpen] = useState<boolean>(false); const handleSubmit = () => { if (amount && reason) { openConfirmationModal(); setIsModalOpen(true); } }; const handleModalSubmit = () => { Calling API.... setIsModalOpen(false); // Close modal on confirmation }; return ( <div> <input data-testid="input-component-amount" type="number" value={amount} onChange={(e) => setAmount(e.target.value)} /> <textarea data-testid="textarea-component-textfield" value={reason} onChange={(e) => setReason(e.target.value)} /> <button data-testid="button" onClick={handleSubmit} disabled={!amount || !reason} > Submit </button> {isModalOpen && ( <div data-testid="confirmation-modal"> <p>Are you sure you want to submit?</p> <button data-testid="confirmation-modal-submit-button" onClick={handleModalSubmit} > Confirm </button> </div> )} </div> ); }; export default FormInputs; 在expect(props.openConfirmationModal).toHaveBeenCalledTimes(1)无法看到模态并出现错误“无法找到元素”对于const submitModalButton = queryByTestId('confirmation-modal-submit-button') as HTMLButtonElement。 我看到两个问题,fireEvent 和 queryByTestId。 您可以直接使用 findBy 或 getBy 来查找元素,而不是使用 queryByTestId 来查找元素。在异步使用的情况下,findBy 是首选。 参考文档 问题在于 fireEvent,没有 act 块。 我建议使用反应测试库中的 userEvent 和 act 块。 userEvent 文档 请参考正确的版本,因为最新版本几乎没有变化。 await act(async () => { await userEvent.type(textArea, "This is some text!"); } await act(async () => { await userEvent.click(submitButton); }); 这是一直以来的首选。 但无论如何,如果您希望继续执行 fireEvent,则始终需要将其包装在 act 块中。 await act(async () => { fireEvent.change(textArea, { target: { value: 'This is some text!' } }); } await act(async () => { fireEvent.click(submitButton); }); 使用 fireEvent 时,通常异步状态不会正确传播,除非它被包装在 act 中
我遇到一个问题,前端的模拟服务在测试期间无法始终加载正确的数据。以下是问题的详细分析: 我正在导入正确的模拟服务。
是否可以使用 Jenkins 运行回归测试? (我不是在谈论单元测试)。 我公司的回归测试是一些VB脚本(将用户操作记录在txt文件中,然后与...
如何使用 Firebase 实时数据库同步 Python 脚本和 Espresso 测试以进行端到端测试?
我开发了一个与 Firebase Firestore 和实时数据库集成的 Android 应用程序。我现在想要执行涉及 Firebase 的端到端 (E2E) 测试。 测试设置: 我正在使用浓缩咖啡
使用 xvfb 在 GitHub 上运行 Java GUI 测试
我的 Java 桌面应用程序有一些基本的自动化 GUI 测试,这些测试在 Windows 桌面上运行时可以正常工作。在 GitHub 上他们失败了 X11GraphicsEnvironment.java 处的 java.awt.AWTError:-2 我
如何创建一个文本脚本生成工具,可以从excel文件中读取测试数据并将其转换为TCSL(类似于C)格式?
我想创建一个测试脚本生成(TCSL 文件)工具。它应该能够从 Excel 文件读取测试数据并将其转换为 TCSL(类似于 C)格式。工具预计将被开发...
ShellSpec:“所有钩子之前和之后”中的错误终止测试执行,即使状态代码为 0
我有一个测试功能,可以在测试执行之前设置我的环境。 所有测试之前设置环境 设置环境(){ set -x # 启用详细输出 # 判断操作系统类型 ...
开始之前 这个问题看起来相当大,所以你可以浏览一下当前的方法,然后直接进入问题,在问题末尾用粗体标记。 我正在为一些处理程序编写测试......
当测试步骤编写完成后,这些步骤内部是如何处理的? 我是 testRigor 的新手,并试图了解 testRigor 执行的内部实现。 我明白 testRigor 的意思是...
我是开发团队的一员,负责根据法规维护多个 B2B .NET API。 对于每个版本,我们将发布分支部署到我们的开发环境,然后在
我们开发自定义调查网站,我正在寻找一种方法来自动化这些网站的模式测试。 调查通常包含许多复杂的规则和分支,这些规则和分支是根据项目如何触发的...
如何在测试 Laravel 控制器方法时模拟控制器方法内调用的方法
web.php中定义的路由是 路线::get('about-us', [PageController::class, 'renderAboutUsPage'])->name('pages.about-us'); 在我的控制器中,我有方法 类 PageController 扩展了 Contr...
我使用jenkins构建apk并将其上传到firebase测试实验室,我使用异步方法。 是否有办法获得异步测试测试通过或失败的通知,例如网络挂钩或邮件?
我是剧作家中的新手,我找不到如何获取元素父级的解决方案? 这是我到目前为止所拥有的: const DeliveryItems = wait page.locator('.js-delivery-container'); //项目...
如何自动化需要 MFA 身份验证器代码的 Azure AD 身份验证?
我们正在对使用 Azure AD 的 Web 应用程序进行 E2E 测试,该应用程序在登录期间需要来自移动身份验证器应用程序的 MFA 代码。是否有此类验证器的编程实现......