본문 바로가기

Go/[Go]Grammar

*_test.go 파일

해당 포스트는 필자의 경험을 기반으로 작성하게 된 글입니다.

 

Go 언어를 입문하는 사람으로써 저와 같이 단순한 실수를 예방하고자 글을 작성합니다.

 

결과부터 말씀드리자면 *_test.go 파일로 이름을 지을 땐 반드시 상황을 구별해야한다

는 것입니다.

그 이유는 무엇일까요?
-> _test.go 로 끝나는 경우에는 go test로 실행하기 때문입니다.

저는 아무것도 모르고 파일의 이름을 pass_test.go 로 이름을 지정했습니다.

go build pass_test.go를 실행한 결과는...

no packages to build 라는 에러가 발생하였습니다.

 

해당 문제를 해결하고자 아래와 같이 필자가 시도했던 방법들에 대하여 정리한 후에, 현직자 분들이 계시는 커뮤니티에 질문을 올려 단 5분만에 해결하게 되었는데요. 다른 Go린이분들 중에 저와 같이 실수하시는 분들이 없었으면 하는 바람에 글을 작성해봅니다 ㅠㅠ

 

실제 카톡 내용

Go 언어 입문한지 얼마 안된 고린이입니다 ㅎㅎ..
os.Stat()을 사용해서 FileInfo 객체를 얻어오는 간단한 테스트를 진행하고 있습니다.
package main

import ( "fmt" "log" "os" )

func main() {
    fileInfo, err := os.Stat("my.txt")
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(fileInfo.Size())
}

다음과 같이 간단하게 테스트 코드를 작성해서 go build <파일이름>.go 로 빌드를 진행했지만, "no packages to build" 라는 에러가 발생했습니다.

혹시 os 패키지에 문제가 있지 않을까 싶어서 reader := bufio.NewReader(os.Stdin) 이라는 코드를 통해 입력을 받는 테스트를 진행했지만, 정상적으로 동작하는 것을 확인했습니다.

그래서 os 패키지 자체에 문제가 아니라, 코드 자체에 문제가 있지 않을까 싶어 go 플레이그라운드에 접속해서 코드를 동작시켰을 때는 정상적으로 동작하고 있습니다..ㅠㅠ

구글링으로 "no packages to build"라고 검색을 해봤지만, 제가 원하는 정보가 나타나지 않아 이렇게 질문을 올립니다.(제가 검색 실력이 부족한거겠죠..ㅠㅠ) 답변해주시면 정말 감사드리겠습니다 ㅠㅠ

 

그 후, go test 라는 내용이 궁금하여 아래 링크를 통해 간단하게 지식을 습득하는 과정을 가졌습니다.

https://simplear.tistory.com/3

 

[Go with TDD] TDD를 위한 go test 기초

[Go with TDD] TDD란? 소프트웨어 공학, 개발 방법론 등에 관해 조금이라도 알고 있다면 TDD(Test-driven development, 테스트 주도 개발)라는 용어를 들어봤을 것이다. 잘 아는 사람도 많겠지만 모르는 사람

simplear.tistory.com

 

 

'Go > [Go]Grammar' 카테고리의 다른 글

Go 컴파일  (0) 2021.11.16
Go Template  (0) 2021.11.16
Go Basic Format  (0) 2021.11.16