Проблема в том, что main_test
- это пакет, отличный от main
.
Для доступа к функциям в main
вам необходимо импортировать main
и получить доступ к таким функциям, как это: main.F()
Также обратите внимание, что f
начинается со строчных букв и поэтому не экспортируется из пакета main
. Чтобы получить к нему доступ в main_test
, его необходимо экспортировать (что можно сделать, изменив его так, чтобы он начинался с заглавной буквы: F
).
В качестве альтернативы вы можете изменить тестовый файл, чтобы он находился в пакете main
.
Редактировать с примечанием: при импорте main
обратите внимание, что пути импорта определяются по имени каталога. Обычно разработчики в Go помещают свои пакеты в каталоги с тем же именем, что и пакет (например, помещают main
в каталог с именем main
). В вашем случае имена пакета и каталога отличаются, поэтому импорт будет import ".../folder1"
, а не import ".../main"
. Вы по-прежнему сможете использовать main.F()
для доступа к функции:
package main_test
import (
"testing"
"../folder1" // use the full path to folder1 from the root of your module
)
func TestF(t *testing.T) {
main.F()
}