XCTest의 기본 모듈을로드 할 수 없습니다
Xcode에서 신속하게 작업하고 있으며 기본적으로 XCTest를 참조하는 테스트 파일을 만듭니다.
대상 멤버십을 기본 프로젝트로 설정하면이 오류가 발생합니다
XCTest의 기본 모듈을로드 할 수 없습니다
이 대상 멤버십을 설정하지 않으면 테스트가 제대로 실행되고 모든 것이 제대로 작동합니다.
추신 : 나는 새롭지 않고 어리석은 질문 일 것입니다.
기본 프로젝트는 XCUnit 프레임 워크와 연결되지 않습니다. 프로젝트에 대해 별도의 테스트 대상을 작성해야합니다 (아직없는 경우), 테스트 대상 파일을 해당 대상에 추가하십시오.
- 프로젝트 네비게이터에서 프로젝트를 선택하십시오. 편집기에서 프로젝트 설정이 열립니다.
- 타겟이 나열된 열 하단의 "+"버튼을 클릭하십시오.
iOS 프로젝트 템플릿으로 작업하는 경우을 선택
iOS > Test > iOS Unit Testing Bundle
합니다.OS X 프로젝트 템플릿 에서 작업중인 경우을 선택
OS X > Test > OS X Unit Testing Bundle
합니다.
문제의 파일이 기본 대상이 아니라 테스트 대상에만 있는지 다시 확인하십시오. 테스트 대상 만 해당 프레임 워크를 가져옵니다.
테스트 파일 / 클래스를 실수로 테스트 대상이 아닌 기본 대상에 추가했습니다. 그렇게 간단합니다.
해결책:
1) 주요 대상에 대한 "빌드 단계"탭의 "컴파일 소스"목록에서 테스트 파일을 제거하십시오.
2) 테스트 대상의 "빌드 단계"탭에서 "컴파일 소스"에 동일한 파일 추가
문제를 해결해야합니다
macOS 동적 프레임 워크 대상을 만들면이 오류가 발생합니다 XCTest.framework
( 링크 는 테스트 대상이 아닌 프레임 워크 대상입니다).
이 경우 문제는 다음을 추가하여 해결됩니다.
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks
프로젝트의 "빌드 설정 / 프레임 워크 검색 경로"로
이 페이지와 같은 스택 오버플로 페이지에서 많은 문제 해결 및 수신 거부 후 다른 iOS 단위 테스트 문제 해결 페이지에서 언급되지 않은 세부 정보를 찾을 수있었습니다.
프로젝트에서 CocoaPods를 사용하는 경우 기본 애플리케이션의 대상 내에 중첩 된 테스트 대상을 포함해야합니다. 실행 후 테스트 대상을 생성 한 경우 podfile에 포함되지 않을 수 있습니다 pod init
. Podfile은 다음과 같아야합니다.
target 'YourApp' do
target 'YourAppTests' do
inherit! :search_paths
# Pods for testing
end
end
Podfile을 저장 pod install
한 후 실행하십시오 .
그것이 도움이되기를 바랍니다!
이것은 약간 늦었지만해야 할 일은 다음과 같습니다.
File> New> Target> iOS Unit Testing Bundle을 클릭하십시오.
그리고 거기에 테스트를 추가하십시오. 이것은 나를 위해 일했습니다. 문제는 프로젝트를 만들 때 단위 테스트 생성을 선택하지 않았다는 것입니다. 이것이 누군가를 돕기를 바랍니다.
이 문제는 프로젝트에서 두 번 발생합니다.
- 새 프로젝트를 만들 때 프로젝트에 UnitTestingBundle을 추가하지 않은 경우
- 때때로 CocoaPods를 프로젝트에 설치할 때
1 : 답변 :
파일로 이동 파일을 클릭하십시오.
그런 다음 첫 번째 옵션 새로 작성을 클릭하십시오.
그것을 클릭하면 대상에 대한 일부 옵션 클릭이 표시됩니다.
그런 다음 검색 창에서 IOS 단위 테스트 번들 검색 및 문제 추가가 해결됩니다.
컴파일러가 이것을 추가 할 수있는 권한을 부여 할 수 없다면 아래에 주어진 두 번째 방법을 시도하십시오.
2. CocoaPod 문제에 답하십시오 :
제품으로 이동 제품을 클릭하십시오.
정리를 클릭하거나 cmd + k를 누르십시오.
문제가 해결되었습니다.
테스트 프레임 워크를 선택할 때 모든 모듈에 대해 대상 멤버십이 선택 해제되어 있는지 확인하십시오. View-> Utilities-> Show File Inspector를 선택하여 Target Membership 옵션을 볼 수 있습니다.
허용되는 답변이 대부분이 문제를 해결하지만이 오류를 해결할 수있는 방법이 하나 더 있습니다.
이미 확인한 경우 :
@pwc @ nick-n과 다른 사람들이 지적했듯이
ClassTest.swift
이되도록 보장함으로써 대상 멤버십 파일 만 테스팅 대상에 부착.- 는
ClassTest.swift
것입니다 하지 당신의 주요 응용 프로그램 대상> 빌드 소스> 컴파일 소스에서 볼 수
확인할 수있는 다른 사항은 다음과 같습니다.
당신의 .podspecs
파일에
source_files
테스트 디렉토리를 직접 또는 간접적으로 포함하지 않는지 확인하십시오 .
예를 들면 다음과 같습니다.
s.source_files = ["Classes/**/*.{swift}", "Classes/**/*.{xib}"]
s.exclude_files = ["Classes/Exclude", "Classes/MyPodProjTests/"]
Note that Classes/**/*.{swift}
includes everything overriding the fact that the directory MyPodProjTests
must be excluded.
Solution:
s.source_files = ["Classes/MyPodProj/**/*.{swift}", "Classes/**/*.{xib}"]
Note: This is extremely edge case and completely human error but I thought it will be worth point out.
Just as @Alfishe mentioned above:
You have to remove the test files from Compiler Sources
under Build Phases
As shown below
I did all the above, but still I was not allowed to access the methods I wanted to test. But before I wrote any test case built the project once and then the methods were accessible to test. So do try it and let me know if it solved any ones problem.
I had the same problem and the solution for me was to:
- Select my scheme
- Edit Scheme...
- Then when Scheme configuration window is opened select left tab named "Test" to be redirected here:
- Like you can see my UITests are not added here but exist in my project so I had just to tap plus button and select my UITests target like this:
- Then tap "Add" button and close configuration view
- Finish with a clean of project and try again it should work
- And don't forget to verify that too: https://developer.apple.com/library/archive/qa/qa1954/_index.html
Hope this answer will help.
PS: one last think in my Test target in build settings I had to check these property that was not configured correctly:
DEBUG_INFORMATION_FORMAT = dwarf;
ONLY_ACTIVE_ARCH = YES;
VALIDATE_PRODUCT = NO;
참고URL : https://stackoverflow.com/questions/29965397/cannot-load-underlying-module-for-xctest
'development' 카테고리의 다른 글
C #의 콘솔 앱에서 비동기? (0) | 2020.05.27 |
---|---|
Mac에서 Android SDK 찾기 및 PATH 추가 (0) | 2020.05.27 |
레일에서 네임 스페이스 내에 컨트롤러를 생성하는 방법 (0) | 2020.05.27 |
Bash 스크립트를 사용하여 중복 항목 제거 (0) | 2020.05.27 |
테스트 초기화 메소드의 HttpContext.Current 모의 (0) | 2020.05.27 |