>  기사  >  백엔드 개발  >  교체 지시문을 사용하여 가져온 로컬 Go 모듈을 테스트하고 홈 폴더의 공급업체 디렉터리를 사용합니다.

교체 지시문을 사용하여 가져온 로컬 Go 모듈을 테스트하고 홈 폴더의 공급업체 디렉터리를 사용합니다.

WBOY
WBOY앞으로
2024-02-10 16:27:11711검색

测试使用替换指令导入的本地 go 模块并使用主文件夹中的供应商目录

이 기사에서 PHP 편집기 Youzi는 교체 명령을 사용하여 go 모듈을 로컬로 가져오고 기본 폴더의 공급자 디렉터리를 사용하는 방법을 소개합니다. 교체 지침은 Go 언어의 강력한 기능으로, 이를 통해 개발 과정에서 로컬 모듈을 보다 유연하게 도입하고 코드의 유지 관리성과 재사용성을 향상할 수 있습니다. 이 글의 지침을 통해 누구나 쉽게 이 기술을 익히고 Go 언어를 보다 효율적으로 개발할 수 있다고 믿습니다. 다음으로 구체적인 단계를 살펴보겠습니다!

질문 내용

myexporter는 내 로컬 모듈이고 교체를 사용하여 기본 모듈로 가져옵니다. 기본 프로젝트 루트의 공급업체 폴더를 사용하여 myexporter에서 테스트를 실행하고 싶습니다.

내 프로젝트 디렉토리 구조는 이렇습니다

으아아아

myexporter go.mod 파일

으아아아

agent go.mod 파일에는

이 있습니다. 으아아아

내 질문은

  1. "go test -mod=vendor ./..."를 실행하면 main_test 실행에서만 테스트됩니다
  2. "go test -mod=vendorexporter/myexporter"를 사용하면 "패키지 내보내기/myexporter가 goroot에 없습니다"라는 메시지가 표시됩니다.
  3. "go test -mod=vendor bitbucket.com/agent/exporter/myexporter"를 실행하면 테스트 파일이 없습니다
  4. exporter/myexporter 디렉터리로 전환한 다음 "go test ./..."로 실행하면 작동하지만 공급업체 디렉터리가 에이전트의 루트에 있기 때문에 "go test -mod=vendor ./..."는 작동하지 않습니다. 디렉토리 李>
  5. "go test -mod=vendor ./exporter/myexporter/"를 실행하면 "기본 모듈(bitbucket.com/agent)에 패키지 bitbucket.com/agent/exporter/myexporter가 포함되어 있지 않습니다."라는 메시지가 표시됩니다.
빌드는 go 패키지에 액세스할 수 없으며 공급업체 폴더에 따라 다르며 테스트에서도 마찬가지입니다. myexporter 내의 다른 공급업체 폴더에 여러 종속성 복사본이 존재하는 것을 원하지 않습니다. Agent/vendor 폴더를 사용하여 myexporter 내에서 테스트를 실행할 수 있는 방법이 있습니까?

해결 방법

agent/vendor 폴더를 사용하여 MyExporter 내에서 테스트를 실행할 수 있는 방법이 있습니까?

아니요.

myexporter가 어디에 있는지 테스트해야 합니다. 일단 제공되면 실제 코드만 제공됩니다.

모듈을 결합하는 것만 가능합니다.

결론은 다음과 같습니다. 두 모듈을 병렬/일관되게 테스트해야 하는 경우 실제로는

다른 수명주기를 가진 두 개의 다른 모듈이 아닙니다. 이것이 서로 다른 수명주기를 가진 별도의 것이라면 첫 번째를 테스트하고 작동하는지 확인한 다음 두 번째에 제공할 수 있습니다. 그런 다음 첫 번째 사용을 포함하여 두 번째 테스트를 테스트합니다. 단, 첫 번째 테스트는 더 이상 필요하지 않으므로 실행하지 마세요.

위 내용은 교체 지시문을 사용하여 가져온 로컬 Go 모듈을 테스트하고 홈 폴더의 공급업체 디렉터리를 사용합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제