Golang подробный журнал испытаний - PullRequest
0 голосов
/ 03 мая 2020

Я использую go тест. Я хотел бы вывести список тестов / подтестов, поскольку вы можете добавить флаг -v, но я хотел бы удалить записи журнала и / или fmt.PrintX, записанные тестом и / или для того, чтобы просто сохранить вывод, связанный с именем теста и временем выполнения. Я понял разницу между log, fmt и t.Log, но не уверен, как и можно ли ограничить эти записи в итоговом тестовом выводе.

Наличие этого TestSample

func TestOutput(t *testing.T) {
    t.Run("Test1", func(t *testing.T) {
        fmt.Println("fmt.Println")
        t.Log("t.Log")
        client.LogTest()
    })

    t.Run("Test2", func(t *testing.T) {
        fmt.Println("fmt.Println")
        t.Log("t.Log")
        client.LogTest()
    })
}

client pkg

func LogTest() {
    fmt.Println("fmt.Println from client")
    log.Println("log.Println from client")
}

Я получил следующий вывод

=== RUN   TestOutput
=== RUN   TestOutput/Test1
fmt.Println
fmt.Println from client
2020/05/03 21:39:05 log.Println from client
=== RUN   TestOutput/Test2
fmt.Println
fmt.Println from client
2020/05/03 21:39:05 log.Println from client
--- PASS: TestOutput (0.00s)
    --- PASS: TestOutput/Test1 (0.00s)
        e2e_test.go:321: t.Log
    --- PASS: TestOutput/Test2 (0.00s)
        e2e_test.go:327: t.Log
PASS
ok      github.com/xxxx/yyyy/zzzz       0.020s

Я хотел бы получить только следующий вывод

=== RUN   TestOutput
=== RUN   TestOutput/Test1
=== RUN   TestOutput/Test2
--- PASS: TestOutput (0.00s)
    --- PASS: TestOutput/Test1 (0.00s)
    --- PASS: TestOutput/Test2 (0.00s)
PASS
ok      github.com/xxxx/yyyy/zzzz       0.020s

или в идеале иметь возможность фильтровать записи журнала в соответствии с уровнем серьезности. Должен ли я изменить журнал или я могу выполнить sh, используя golang встроенный журнал ?

...