Swiftで実行可能ファイルを作成しました。swift package init --type executable
で、いくつかのテストを書いてみたいと思います。この場合、ライブラリパッケージにはまったく問題はないようです。その場合、Tests
ディレクトリには、swift test
でうまく動作するテストモジュールが置かれます。実行可能ファイルの場合は、空のTests
ディレクトリのみが作成されます。Swiftで実行可能ファイルをテスト
Xcodeまたはswift test
から実行ファイルのテストを実行しようとしていますが、Swiftがmain.swiftの内容をテストにリンクできないことを指定しているようですが、リンカーの問題が発生しています。私はここで何ができるのか分かりません。私はリンクする新しいフレームワークターゲットを作成するためにXcodeの中で試してみましたが、それでも私が知る限り、swift test
によって取り上げられるものはありません。私はそれをXcode経由でも動作させることはできませんでした。以下はswift test
の出力です。
Compile Swift Module 'swifttest' (1 sources)
Linking ./.build/debug/swifttest
Compile Swift Module 'swifttestTests' (1 sources)
Linking ./.build/debug/swifttestPackageTests.xctest/Contents/MacOS/swifttestPackageTests
Undefined symbols for architecture x86_64:
"__TF9swifttest3fooFT_SS", referenced from:
__TFFC14swifttestTests14SwifttestTests7testFooFT_T_u0_KzT_SS in swifttestTests.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-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-build-tool -f /Users/kilian/Desktop/swifttest/.build/debug.yaml test
これは参考のために私のファイルの内容です。これは最小限のサンプルプロジェクトです。
main.swift
public func foo() -> String {
return "bar"
}
print(foo())
swifttestTests.swift
import Foundation
import XCTest
import swifttest
class SwifttestTests: XCTestCase {
func testFoo() {
XCTAssertEqual("bar", foo())
}
}
ディレクトリレイアウト
.
├── Package.swift
├── Sources
│ └── main.swift
└── Tests
└── swifttestTests
└── swifttestTests.swift
あなたは私の一日を保存しました!どうもありがとうございます :) – pushkarnk