可能な場合は、コマンドラインから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プロジェクトを作成する必要がありますか?
次のコマンドで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
がテストスイートを実行しようとしたときにクラッシュすることがわかりましたお役に立てば幸いです!
問題は、メインプロジェクトのターゲットメンバーシップの下にtest.Swiftファイルがあることだと思います。 Swiftテストファイルがテストターゲットのみに属していることを確認してください。