在Swift 4中的XCUITest中只调用一次方法

在Swift 4中的XCUITest中只调用一次方法,swift,static-methods,xcuitest,xctestcase,Swift,Static Methods,Xcuitest,Xctestcase,我的测试套件包含一些测试用例。我有一些私有函数,我将检查元素是否存在。考虑到我有三个测试用例: func test_1() { ... checkListViewElements() ... } func test_2() { ... } func test_3() { ... checkListViewElements() ... } private func checkListViewElements() { //Chec

我的测试套件包含一些测试用例。我有一些私有函数,我将检查元素是否存在。考虑到我有三个测试用例:

func test_1() {
    ...
    checkListViewElements()
    ...
}

func test_2() {
    ...
}

func test_3() {
    ...
    checkListViewElements()
    ...
}

private func checkListViewElements() {
    //Checking existence
}

由于我认为每个测试用例都是独立的,所以私有函数<代码> CuthListVeleEngsSe()/Cux>可能会在测试用例中重复。 问题:

var tagForListViewElementsCheck = "firstTime" //Global variable

private func checkListViewElements() {
   if tagForListViewElementsCheck == "firstTime" {
      //Checking existence
      tagForListViewElementsCheck = "notFirstTime"
   }

   else {
      //Skip
   }
}
  • 当我运行整个测试套件时,所有三个测试用例(test_1、test_2和test_3)都将被执行
  • 私有方法
    checkListViewElements()
    将被调用两次。这将导致测试套件完成时间的增加
我想要的:

var tagForListViewElementsCheck = "firstTime" //Global variable

private func checkListViewElements() {
   if tagForListViewElementsCheck == "firstTime" {
      //Checking existence
      tagForListViewElementsCheck = "notFirstTime"
   }

   else {
      //Skip
   }
}
  • 我的代码中有很多函数,比如
    checklistviewmelements()
    。当我运行整个测试套件时,我希望它们只运行一次。(请记住,对于每个测试用例,应用程序都会终止并重新打开)
我的尝试:

var tagForListViewElementsCheck = "firstTime" //Global variable

private func checkListViewElements() {
   if tagForListViewElementsCheck == "firstTime" {
      //Checking existence
      tagForListViewElementsCheck = "notFirstTime"
   }

   else {
      //Skip
   }
}
  • 如果我使用局部变量作为标记,它可以正常工作。但是在这里,我必须为每个私有方法创建每个标记。我真的很讨厌
  • 我曾经尝试过
    dispatch\u
    ,但在Swift 4中似乎不受支持
  • 然后我尝试通过引用静态结构。它似乎也不起作用

如果有其他好的方法可以做到这一点?提前谢谢

您可以使用函数
func setUp()
。每个套房只打一次电话。更多信息请访问