gpt4 book ai didi

selenium - 如何使用 NUnit 和 SpecFlow 按类别驱动的特定顺序运行自动化 bdd UI 测试

转载 作者:行者123 更新时间:2023-12-02 22:13:59 26 4
gpt4 key购买 nike

我需要通过持续集成运行自动化 UI 测试的帮助。我有大约 200 个测试用例,但它们不是按照一些好的做法编写的,它们相互依赖。我是一名开发人员而不是 QA,我不知道发生了什么细节,所以如果我不适合某些事情,请原谅我。这是我能看到的:

1. The tests are BDD 
2. They are written with SpecFlow
3. NUnit is used as test executor

该系统有点复杂,很难编写没有依赖关系的测试,但并非不可能,编写它们的人并不了解事情应该如何发生。为了在测试机器上运行这些 UI 测试,我需要一些可能的最简单解决方案的帮助。

我看到 NUnit 正在按字母顺序运行测试,但这并不能解决我的问题,因为:
  • QA 已将案例按逻辑插入到类别
  • 当编写测试以避免代码重复时,QA 会在同一类别中插入多个案例 - 例如:我们有一个类别 和类别 和名为 的测试用例checkSound 此测试用例包含在两个类别 中猫 .

  • 当我尝试按 时出现问题运行所有测试

    预期结果是:测试应该通过

    实际结果是:测试失败

    只有通过右键单击类别并运行选定的测试来启动和运行它们才能通过。

    我试图在自动生成的 .cs 文件中使用属性 [NUnit.Framework.TestCase(TestName = "01")] 设置测试名称,但没有成功。

    我也尝试过重命名类别,但也失败了。

    我看到有一个属性 [NUnit.Framework.IncludeExclude()] 但我不确定这是更改自动生成的设计文件的正确方法。

    这促使我在 stackoverflow 中询问有经验的 QA 的其他一些意见。

    我将非常感谢您的帮助!!

    最佳答案

    第一:不要编辑生成的 .feature.cs文件,更改将在下次生成时被替换

    以特定顺序运行测试并不容易并且有充分的理由。您不应该依赖测试执行顺序,它会使测试运行变得脆弱且令人沮丧。最好的办法是尽快解决这些依赖关系。

    如果您有一组现有的 specflow 测试,最简单的方法就是在测试中创建一个附加步骤,这些步骤具有调用与依赖项调用相同的步骤的依赖项。见 this answer有关如何从另一个步骤调用步骤的示例 ( Documentation )。

    如果这是太多的工作,那么您可能能够获得所需的一种方法是在 CI 上仅执行特定类别的测试,然后当这些完成时,运行下一个类别,然后运行下一个等等,直到您执行所有的测试。这并不理想并且是一个生硬的工具,但可能足以让您的测试运行。

    关于selenium - 如何使用 NUnit 和 SpecFlow 按类别驱动的特定顺序运行自动化 bdd UI 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36720866/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com