Задать вопрос
viksnamax
@viksnamax
Aliens is here!

Почему не видна функция определённая в другом файле, но в том же пакете?

В файле driver.go определил функцию, в driver_test.go её использую внутри теста, эти два файла входят в состав одного пакета, но при запуске go test -v ./driver_test выдаёт ошибку что функция не определена (undefined). Гуглить пробовал, есть схожие проблемы, но решения не помогли, документацию по go также смотрел

driver.go
package cowrie

// Drty is a func to handle Drty request
func Drty(p1 string, p2 string) {
	fmt.Println("1234")
}


driver_test.go
package cowrie

import (
	"testing"
)

func Test_Deposit(t *testing.T) {
	Drty("1", "2")
}


log ошибки
# command-line-arguments [command-line-arguments.test]
wire-transfer\cowrie\driver_test.go:9:7: undefined: Driver
FAIL    command-line-arguments [build failed]
FAIL
  • Вопрос задан
  • 434 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
Суть проблемы в том, что вы указываете только файл с тестом, а нужно указать еще и файл с декларацией и реализацией (если они разные).

Вот так будет работать:
go test -v ./driver_test.go ./driver.go

Подозреваю, что реально вы хотели сделать чтобы у вас выполнялись не все тесты в пакете, а конкретный один, если так - тогда проще делать вот так (я сам так часто делаю :)))
go test -v -run ^Test_Deposit$
Ответ написан
Комментировать
@ghostiam
На Go писатель, серверов пинатель.
go test -v .
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы