2017-10-05 83 views
1

我在一个项目中一些全局常量:分享不同的目标之间的全局常量

// DemoACIs.swift 
let DEMO_TEST_MENU_SCREEN_VIEW_ACI = "test_menu_screen_view" 
let DEMO_TEST_MENU_SCREEN_TITLE_LABEL_ACI = "test_menu_screen_title_label" 
let DEMO_TEST_MENU_SCREEN_BUTTON1_ACI = "test_menu_screen_button1" 
etc. 

我想引用他们在另一个基于SWIFT的目标在Xcode(一个UI测试目标在这种情况下)..

// TestMenuScreenViewProxy.swift 

import Foundation 
import XCTest 

class TestMenuScreenViewProxy 
{ 
    internal var view:XCUIElement { return app.otherElements[DEMO_TEST_MENU_SCREEN_VIEW_ACI] } 
    internal var titleLabel:XCUIElement { return app.textFields[DEMO_TEST_MENU_SCREEN_TITLE_LABEL_ACI] } 
    internal var button1:XCUIElement { return app.buttons[DEMO_TEST_MENU_SCREEN_BUTTON1_ACI] } 
} 

当然这是行不通的。在测试目标中找不到常量。我怎样才能让他们在那个目标中被访问?

+2

通过检查目标成员资格 –

回答

3

选择你声明了常量文件并更新其目标成员,使其可与测试目标

enter image description here

这里是一个示例代码

import Foundation 

class Constants { 
    static let test = "ABCD" 
} 

改变其目标以使其在测试目标中可用

现在在测试目标

override func setUp() { 
    super.setUp() 
    let c = Constants.test 
    // Put setup code here. This method is called before the invocation of each test method in the class. 
} 
+0

感谢提示@Sandeep,确保您声明常量的文件与测试目标共享! – BadmintonCat

+1

@badmintoncat:永远欢迎好友:)考虑接受答案,如果它帮助:) –