I need to add:
In the post the reproducer test is of course to short, so the test show
that it fails all the time. But that triggers the problem anyway. Better
would be this:
func TestHelloer(t *testing.T) {
want := "Hello, world!"
got := Helloer()
if got != want {
t.Errorf("Helloer() = %v, want %v", got, want)
}
}
Also, the output of the go test call has a inidication why it has exit
status 1:
$ go test -v ./... -coverprofile=coverage.out -coverpkg=./internal/...
-covermode count
example.com/m: open
/tmp/go-build1679138031/b002/covmeta.f6e4431d5ec1fd71f02b3ce4e56eb691a86525173d917007425576a7d9db7c72:
no such file or directory
=== RUN TestHelloer
helloer_test.go:8: Helloer() = Hello, world!, want Hello, world!
--- FAIL: TestHelloer (0.00s)
FAIL
coverage: 100.0% of statements in ./internal/...
FAIL example.com/m/internal 0.003s
Also this happens with the Alpine based image, but also for the Debian
based image as well.
On Thursday, February 8, 2024 at 12:43:32 AM UTC+1 Martin wrote:
> I am using the new `golang:1.22.0-alpine3.19` Alpine image to build and
> test a Golang 1.22.0 application. The test uses coverage like that `go
> test -v ./... -coverprofile=coverage.out -coverpkg=./internal/...
> -covermode count`. The test command seems to work fine, but the exit status
> is 1. The created coverage.out seems also fine, as I could use go tool
> cover with it, see below.
>
> Golang version: 1.22.0
> Container Image: golang:1.22.0-alpine3.19
>
> Reproducer:
>
> main.go:
> package main
>
> import (
> "example.com/m/internal"
> "fmt"
> )
>
> func main() {
> fmt.Println(internal.Helloer())
> }
>
>
> internal/helloer.go:
> package internal
>
> func Helloer() string {
> return "Hello, world!"
> }
>
> internal/helloer_test.go:
> package internal
>
> import "testing"
>
> func TestHelloer(t *testing.T) {
> want := "Hello, world!"
> got := Helloer()
> t.Errorf("Helloer() = %v, want %v", got, want)
> }
>
> go.mod:
> module example.com/m
>
> go 1.22
>
> Shell commands for testing:
>
> apk add --no-cache build-base
> go test -v ./... -coverprofile=coverage.out -coverpkg=./internal/...
> -covermode count || echo "flaky:$?"
> go tool cover -html=coverage.out -o coverage.html
> go tool cover -func=coverage.out
>
>
> Is it a bug or exepected behaviour?
>
>
>
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/c2fcc039-075e-4208-879e-5fdc11a0a18dn%40googlegroups.com.