답변:
기본 프로젝트는 XCUnit 프레임 워크와 연결되지 않습니다. 프로젝트에 대해 별도의 테스트 대상을 작성하고 (아직없는 경우) 테스트 소스 파일을 해당 대상에 추가해야합니다.
iOS 프로젝트 템플릿으로 작업하는 경우을 선택 iOS > Test > iOS Unit Testing Bundle
합니다.
OS X 프로젝트 템플릿 에서 작업중인 경우을 선택 OS X > Test > OS X Unit Testing Bundle
합니다.
문제의 파일이 기본 대상이 아니라 테스트 대상에만 있는지 다시 확인하십시오. 테스트 대상 만 해당 프레임 워크를 가져옵니다.
macOS 동적 프레임 워크 대상을 만들면이 오류가 발생합니다 XCTest.framework
( 링크 는 테스트 대상이 아닌 프레임 워크 대상입니다).
이 경우 문제는 다음을 추가하여 해결됩니다.
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks
프로젝트의 "빌드 설정 / 프레임 워크 검색 경로"에
$(PLATFORM_DIR)/Developer/Library/Frameworks
다른 이름으로 여러 버전의 Xcode가 설치된 경우 (예 : 릴리스 및 베타 버전).
이 페이지와 같은 스택 오버플로 페이지에서 많은 문제 해결 및 수신 거부 후 다른 iOS 단위 테스트 문제 해결 페이지에서 언급되지 않은 세부 정보를 찾을 수있었습니다.
프로젝트에서 CocoaPods를 사용하는 경우 기본 애플리케이션의 대상 내에 중첩 된 테스트 대상을 포함해야합니다. 실행 후 테스트 대상을 생성 한 경우 podfile에 포함되지 않을 수 있습니다 pod init
. Podfile은 다음과 같아야합니다.
target 'YourApp' do
target 'YourAppTests' do
inherit! :search_paths
# Pods for testing
end
end
Podfile을 저장 pod install
한 후 실행하십시오 .
그것이 도움이되기를 바랍니다!
이 문제는 프로젝트에서 두 번 발생합니다.
1 : 답변 :
파일로 이동 파일을 클릭하십시오.
그런 다음 첫 번째 옵션 새로 작성을 클릭하십시오.
그것을 클릭하면 대상에 대한 일부 옵션 클릭이 표시됩니다.
그런 다음 검색 창에서 IOS 단위 테스트 번들 검색 및 문제 추가가 해결됩니다.
컴파일러가 이것을 추가 할 수있는 권한을 부여 할 수 없다면 아래에 주어진 두 번째 방법을 시도하십시오.
2. CocoaPod 문제에 답하십시오 :
제품으로 이동 제품을 클릭하십시오.
정리를 클릭하거나 cmd + k를 누르십시오.
문제가 해결되었습니다.
허용되는 답변은 대부분이 문제를 해결하지만이 오류를 해결할 수있는 방법이 하나 더 있습니다.
이미 확인한 경우 :
@pwc @ nick-n과 다른 사람들이 지적했듯이
ClassTest.swift
이되도록 보장함으로써 대상 멤버십 파일 만 테스팅 대상에 부착.ClassTest.swift
것입니다 하지 당신의 주요 응용 프로그램 대상> 빌드 소스> 컴파일 소스에서 볼 수확인할 수있는 다른 사항은 다음과 같습니다.
당신의 .podspecs
파일에
source_files
테스트 디렉토리를 직접 또는 간접적으로 포함하지 않는지 확인하십시오 .
예를 들면 다음과 같습니다.
s.source_files = ["Classes/**/*.{swift}", "Classes/**/*.{xib}"]
s.exclude_files = ["Classes/Exclude", "Classes/MyPodProjTests/"]
주 Classes/**/*.{swift}
디렉토리가 있다는 사실 오버라이드 (override) 모든 것을 포함하고 MyPodProjTests
제외해야합니다.
해결책:
s.source_files = ["Classes/MyPodProj/**/*.{swift}", "Classes/**/*.{xib}"]
참고 : 이것은 극단적 인 경우이며 완전히 인간의 실수이지만 지적 할 가치가 있다고 생각했습니다.
s.source_files
. 감사!
나는 같은 문제가 있었고 해결책은 다음과 같습니다.
이 답변이 도움이 되길 바랍니다.
추신 : 빌드 설정의 테스트 대상에서 마지막으로 생각한 것은 올바르게 구성되지 않은이 속성을 확인해야했습니다.
DEBUG_INFORMATION_FORMAT = dwarf;
ONLY_ACTIVE_ARCH = YES;
VALIDATE_PRODUCT = NO;
테스트 클래스의 목표 멤버십을 확인하십시오.