【问题标题】:How to execute script from multiple different file locations in Go如何在 Go 中从多个不同的文件位置执行脚本
【发布时间】:2020-05-26 00:37:05
【问题描述】:

我目前正在使用脚本为每个测试加载和拆除 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

问题是工作目录从我调用函数执行脚本的地方发生变化,因此相对导入不起作用。我不想使用绝对路径,因为这段代码可能在不同的机器上。 如果能够从多个不同的位置调用同一个脚本,有什么好的解决方案?

【问题讨论】:

    标签: mongodb go path scripting


    【解决方案1】:

    如何在设置load_db.py脚本绝对路径的每台机器上定义环境变量?

    然后在LoadDB() func 中,您可以使用os 包中的Getenv() func 获取环境变量。

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

    func LoadDB() {
        path := os.Getenv("LOAD_DB_PATH") // /absolute/path/to/script
        cmd := exec.Command(path)
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-03
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 1970-01-01
      • 1970-01-01
      • 2018-05-26
      相关资源
      最近更新 更多