XCUI测试:测试集合是如何发生的

时间:2017-07-26 16:08:26

标签: objective-c xcode testing automated-tests

XCUI测试中的测试集合按字母顺序排列

所以,如果有像

这样的测试
  • test_A
  • test_X
  • test_1A
  • DISABLE_test

执行顺序是

  • test_1A
  • test_A
  • test_X

并且未选择DISABLE_test,因为它不以测试

开头

我想知道如何智能地命名测试以便按顺序运行它们。

我认为第一个解决方案是使用数字,但是

  • test_1a
  • test_2b
  • test_10c

测试按顺序执行,

  • test_1a
  • test_10c
  • test_2b

这不是预期的订单。

什么是更好的设计?

1 个答案:

答案 0 :(得分:1)

通过使用对象上的反射来获取所有方法名称来完成测试收集。我不确定这是否是通过Swift测试案例中的Objective-C runtime完成的,但并不重要。

您已接近订购,但您可以观察到这是您的测试名称的正确字母顺序。

let things:[String] = ["test-2","test-1","test-10"]
let sorted = things.sorted() 
//["test-1", "test-10", "test-2"]

填写名称以获得所需的订单。

let things:[String] = ["test-02","test-01","test-10"]
let sorted = things.sorted()
//["test-01", "test-02", "test-10"]

在更加结构化的层面上,以特定顺序运行测试的要求可能表明测试没有解耦。即test-10不应依赖于test-01test-02的州设置。