如果可能的话,我想从命令行使用XCTest测试一些Swift示例。
import XCTest
class LeapTest : XCTestCase {
func testVanillaLeapYear() {
let year = Year(calendarYear: 1996)
XCTAssertTrue(year.isLeapYear);
}
}
我喜欢从命令行运行它。
我已经将Xcode设置为使用测试版中的开发人员工具:
sudo xcode-select -s /Applications/Xcode6-Beta.app/Contents/Developer/
如果我天真地尝试并运行它就像这样
$ xcrun swift LeapTest.swift
LeapTest.swift:1:8: error: cannot load underlying module for 'XCTest'
import XCTest
^
任何方式直接从CLI运行它?或者我是否必须创建Xcode项目?
答案 0 :(得分:46)
我认为问题是您在主项目的目标成员资格下有test.swift文件。确保您的swift测试文件仅属于Test目标。
答案 1 :(得分:12)
我能够使用以下命令进行XCTestCase编译:
swiftc \
-F/Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks \
-Xlinker -rpath -Xlinker /Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks \
-lswiftCore LeapTest.swift \
-o LeapTests
然后您可以使用xctest
执行测试:
xcrun xctest LeapTests
要分解那些swiftc
命令行选项:
-F...
将XCTest.framework添加到框架搜索路径,使其能够从Swift导入-Xlinker -rpath ...
确保可以在加载时找到XCTest共享库-lswiftCore
的情况下,我发现xctest
在尝试运行测试套件时会崩溃希望有所帮助!