공대생 정리노트
Local package import하기 / Test 자동화 본문
Local package import
Go에서 local package를 import 할 때 relative path로 적어놓으면 local import ~ in non-local package라고 에러가 뜬다.
이 문제는 import의 시작 path가 $Home/go/src에서 시작하기 때문이다.
stackoverflow.com/questions/35480623/how-to-import-local-packages-in-go
이 문제를 해결하는 방법은 다음과 같다. (go document 참고 golang.org/doc/tutorial/call-module-code)
1. ./myapp을 main.com/myapp으로 고친다.
2. 밑과 같이 go.mod에서 replace 문을 통하여 main.com/myapp module path를 relative path로 바꿔준다.
3. 저장하고 실행하면 해결! 그리고 실행하면 다음과 같이 require 문이 새로 추가된다.
require문은 dependency를 명시하는 것이다. 만약 main.com/myapp이 publish된 것이라면 해당하는 버전에 맞춰 바꿔 써주어야 할 것이다.
Test 자동화
github.com/smartystreets/goconvey
저렇게 install을 하고 자신의 프로젝트의 path에도
go install github.com/smartystreets/goconvey
을 해주어야한다!!!
설치 후 테스트를 하고자 하는 폴더에 goconvey를 입력하여 실행한다.
이후 작업하다 파일을 저장하면 변경을 감지하여 테스트 파일을 자동으로 실행시켜주고 결과를 서버에 띄워준다.
Test를 작동하기에 좋은 라이브러리로는 밑의 assert가 있다.
go get github.com/stretchr/testify/assert
assert를 설치하고 test file의 import에 github.com/stretchr/testify/assert 를 쓰면 assert를 쓸 수 있게 된다.
assert := assert.New(t)
..
assert.Equal(http.StatusOK, res.Code)
'언어 > Go' 카테고리의 다른 글
Effective Go (1) 요약 (0) | 2021.10.18 |
---|---|
동시성 패턴 (0) | 2021.05.05 |
고루틴 (0) | 2021.05.03 |
Server 함수 정리 (0) | 2020.12.29 |
Test시 Cannot import "main"이 뜨며 build fail (0) | 2020.12.20 |