我目前正在使用脚本为每个测试加载和拆卸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
问题是工作目录从我调用函数的位置更改为执行脚本,因此相对导入不起作用。我不想使用绝对路径,因为此代码可能在其他计算机上。
能够从多个不同位置调用同一脚本的最佳解决方案是什么?
最佳答案
如何在每台机器上定义设置load_db.py
脚本绝对路径的环境变量?
然后,在LoadDB()
函数中,您可以使用Getenv()
包中的os
函数获取环境变量。
https://golang.org/pkg/os/#Getenv
func LoadDB() {
path := os.Getenv("LOAD_DB_PATH") // /absolute/path/to/script
cmd := exec.Command(path)
}
关于mongodb - 如何在Go中从多个不同的文件位置执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62012860/