Я использую 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 встроенный журнал ?