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, даже если проверка прошла успешно.

Другие вопросы по тегам