GoLand тесты не проводились
У меня есть метод, который я тестирую, и вроде все нормально. Однако, когда я запускаю тесты в GoLand, я вижу в выводе, что тесты «ПРОЙДЕНЫ», но исполнитель тестов говорит, что «тесты не выполнялись».
Вот пример метода в
calculator.go
package calculator
import (
"fmt"
)
type Calculator struct {}
func New() Calculator {
return Calculator{}
}
func (s *Calculator) AddTwoNumbers(num_one, num_two int) int {
fmt.Printf("adding")
return num_one + num_two
}
Вот тест в
calculator_test.go
:
package calculator
import (
"fmt"
"testing"
)
func Test_Calculator_AddTwoNumbers(t *testing.T) {
// Arrange
calculator := New()
// Act
total := calculator.AddTwoNumbers(1,2)
// Assert
if total != 3 {
msg := fmt.Sprintf("total should have been %d but instead was %d", 3, total)
t.Error(msg)
}
}
Что я делаю не так?
2 ответа
Вместо
fmt.Printf(...
в попытке либо
fmt.Println(...
или
fmt.Printf("foo\n')
Отсутствие новой строки в выводе вашего
AddTwoNumbers
метод приводит к тому, что формат выходных данных выполнения теста не содержит каждый тест в новой строке. Исполнитель теста не может интерпретировать, что тест был запущен. Добавление этой новой строки сохраняет чистый вывод.
Я бы предложил использовать для проверки подробного вывода тестового прогона.
go test -v
-v Подробный вывод: записывать все тесты по мере их выполнения. Также распечатайте весь текст из вызовов Log и Logf, даже если проверка прошла успешно.