Как выполнить скрипт из нескольких файлов в Go - PullRequest
0 голосов
/ 26 мая 2020

В настоящее время я использую сценарий для загрузки и удаления тестовой базы данных MongoDB для каждого теста. Я делаю это следующим образом:

func LoadDB() {
    cmd := exec.Command("../scripts/load_db.py")
}

где я вызываю эту функцию из каждого теста. Проблема в том, что некоторые тестовые файлы удалены из этого скрипта дальше, чем другие:

+ service1
   – service1.go
   – service1_test.go
+ service2
   + sub
      – subservice2.go
      – subservice2_test.go
    – service2.go
    – service2_test.go

Проблема в том, что рабочий каталог изменяется из того места, где я вызываю функцию для выполнения скрипта, и поэтому относительный импорт не работай. Я не хочу использовать абсолютные пути, потому что этот код может быть на другом компьютере. Что было бы хорошим решением для вызова одного и того же сценария из нескольких разных мест?

1 Ответ

2 голосов
/ 26 мая 2020

Как насчет определения переменных среды на каждом компьютере, которые задают абсолютный путь к сценарию load_db.py?

Затем в LoadDB() fun c вы можете получить переменную среды, используя Getenv() веселье c из пакета os.

https://golang.org/pkg/os/#Getenv

func LoadDB() {
    path := os.Getenv("LOAD_DB_PATH") // /absolute/path/to/script
    cmd := exec.Command(path)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...