2017-02-07 21 views
0

私はKituraとXcodeが新しく、テストファイルを追加する際にいくつかの問題に直面しています。 @testingディレクティブに関連しているようです。 Kitura websiteに示されているのと同じ設定があります。 私は、迅速なテストコンソールに迅速ビルドを呼び出すと、私は次のエラーを取得する:Kituraで単体テストを実行するとエラーが発生する

Compile Swift Module 'testTests' (1 sources) 
Linking ./.build/debug/testPackageTests.xctest/Contents/MacOS/testPackageTests 
Undefined symbols for architecture x86_64: 
    "__TFC4test3OkoCfT_S0_", referenced from: 
     __TFC9testTests8OkoTests8test_addfT_T_ in OkoTests.swift.o 
    "__TMaC4test3Oko", referenced from: 
     __TFC9testTests8OkoTests8test_addfT_T_ in OkoTests.swift.o 
ld: symbol(s) not found for architecture x86_64 
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation) 
<unknown>:0: error: build had 1 command failures 
error: exit(1): /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-build-tool -f /Users/*user*/Projects/Kitura/test/.build/debug.yaml test 

私はライン@testableインポートテストをコメントアウトして、迅速なテストを迅速なビルドを入力ししかし、とき次にエラーが発生します:

Compile Swift Module 'testTests' (1 sources) 
/Users/*user*/Projects/Kitura/test/Tests/testTests/OkoTests.swift:6:17: error: use of unresolved identifier 'Oko' 
     let o = Oko() 
       ^~~ 
<unknown>:0: warning: 'cacheParamsComputed' is deprecated 
<unknown>:0: warning: 'cacheAlphaComputed' is deprecated 
<unknown>:0: warning: 'keepCacheWindow' is deprecated 
<unknown>:0: error: 'memoryless' is unavailable 
Metal.MTLCommandBufferError:19:14: note: 'memoryless' has been explicitly marked unavailable here 
     case memoryless 
      ^
<unknown>:0: error: build had 1 command failures 
error: exit(1): /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-build-tool -f /Users/*user*/Projects/Kitura/test/.build/debug.yaml test 

Xcodeからテストしようとするとテストファイルなし

Xcode build error

は、すべてが正常に動作します。代わりにneratedプロジェクト(迅速パッケージ生成-xcodeproj)が、私はエラーをコンパイルし得ます。私は問題はスウィフトはmain.swiftファイルが含まれているモジュール(すなわち、として実行ファイルにコンパイルされることを意図されているモジュールのユニットテストをコンパイルすることはできないということであると信じてい

Xcode Project structure

+0

あなたのプロジェクトを共有できますか? GitHubリポジトリへのリンクで十分です。 最初のエラーから、私の推測では、フォルダの名前が正しくない(testPackageTestsとは何ですか?) –

+0

@YoumingLin:ここには[link](https://github.com/kkris1983/first.git)です – kkris1983

答えて

3

:私の下 は、プロジェクト構造を提示します他のプロジェクトで使用するライブラリとは対照的です)。私はあなたのレポをクローンして、1)main.swiftを削除し、2)テスト可能なimportステートメントのコメントを外して、ユニットテストをコンパイルして実行することができました。

+0

doesnそれは奇妙に見えますか? 'main.swift'が削除されたときにテストが合格することを確認します。あなたがそれのためのxcodeプロジェクトを生成するときHovewer **素早くパッケージを生成する - xcodeproj **とXcodeでそれを構築し、main.swiftの行方不明の警告を取得します。 – kkris1983

+0

私の経験から、Swiftは、ファイル/フォルダの名前とフォルダ構造について**本当に不安です。私は、この特定のプロジェクト設定でXcodeが何をしているのか分かりませんが、私が寄稿したライブラリのどれも 'main.swift'ファイルが見つからなかったと嘆いていませんでした。 新しいSwiftプロジェクトは、 'swift package init'(デフォルトタイプはライブラリ)または' swift package init --type executable'(実行可能ファイル用)を使って生成することができます。残念ながら、この方法で新しいSwiftプロジェクトを生成して、コードをコピーするのではなく、Swiftが好きでないプロジェクト設定のどの部分を見つけようとするのが簡単かもしれません。 –

+0

回答ありがとうございました – kkris1983

関連する問題