스위프트로 swift package init --type executable
을 통해 실행 파일을 생성 했으므로 몇 가지 테스트를 작성하고 싶습니다. 이 경우 라이브러리 패키지에서 전혀 문제가되지 않는 것으로 보입니다.이 경우 Swift는 을 통해 원활하게 실행되는 테스트 모듈로 Tests
디렉토리를 채 웁니다. 실행 파일의 경우 비어있는 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