fix(cli): use cwd as repoRoot instead of os.Executable path
os.Executable() in Go 1.x parallel tests resolves to <TempDir>/0/molecule.test making path-based traversal from the binary back to the repo root unreliable. Switch to os.Getwd() which always returns the repo checkout root in CI (where `go test ./cmd/molecule/...` is invoked), and skip any path arithmetic. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
9dfb5f9aa4
commit
7b254c926c
@ -193,13 +193,10 @@ func mockServer(t *testing.T, basePath string) *httptest.Server {
|
||||
}
|
||||
|
||||
// repoRoot returns the repo root directory.
|
||||
// Assumes this file is at cmd/molecule/molecule_test.go.
|
||||
// ../../.. from cmd/molecule/ -> the module root.
|
||||
// CI runs tests from the repo checkout dir, so cwd is the right anchor.
|
||||
func repoRoot() string {
|
||||
// Use os.Args[0] as a stable anchor: the test binary path.
|
||||
// We walk up 3 levels from the test binary location.
|
||||
exe, _ := os.Executable()
|
||||
return filepath.Join(filepath.Dir(exe), "..", "..", "..")
|
||||
cwd, _ := os.Getwd()
|
||||
return cwd
|
||||
}
|
||||
|
||||
// mol returns the path to the CLI binary, building it if needed.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user