testing - 依赖按顺序运行的自动化测试可以被认为是不好的做法吗?

标签 testing acceptance-testing

特别是在我的验收测试套件中,我看到很多测试设计为按特定顺序(从上到下)运行,这在某些方面对测试特定流程很有意义,但我也听说这是不好的做法。谁能阐明这里的优点和缺点?

最佳答案

在大多数情况下,如果您依赖顺序,就会出现问题。最好解决这个问题,因为:

  • 测试应该是独立的,以便能够单独运行它们(您应该只能运行 1 个测试)。
  • 测试运行工具通常不能保证顺序。即使今天它是一个特定的序列,明天您可以向运行器添加一些配置并且顺序将会改变。
  • 很难从测试报告中确定问题所在,因为您会看到很多失败,而只有 1 个测试失败。
  • 同样 - 从测试报告工具跟踪测试步骤并不容易,因为这些步骤被分配给不同的测试。
  • 如果需要,您将无法并行运行它们(希望您不要这样做)。

如果您想共享逻辑 - 创建可重用的类或方法(参见 this)。

PS:我将这些称为系统测试,而不是验收测试 - 您也可以在单元或组件级别编写验收测试。

关于testing - 依赖按顺序运行的自动化测试可以被认为是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40349496/

相关文章:

python - 在 py.test 中的每个测试之前和之后运行代码?

testing - 使用 CodeCeption 测试脚本从 jQuery Chosen Dropdown 中选择一个值

ruby-on-rails - 使用 cucumber 检查页面标题

unit-testing - 由外向内 TDD : Should I check in failing acceptance tests?

testing - 如果你有一个功能的场景/测试,你是否必须测试相反的?

testing - 我如何处理 TruClient 中的意外警报?

reactjs - 无法通过 Jest ​​快照匹配

javascript - npm Module Faker 在调用时不会创建不同的数据

cucumber - 如何提高 SpecFlow/Gherkin 步骤之间的可重用性?

php - Laravel 获取随机数的静态数组并将其用于分页