github.com/roryq/sesame@v0.0.3-devel/run_test.go (about) 1 package sesame_test 2 3 import ( 4 "os" 5 "os/exec" 6 "runtime" 7 "testing" 8 ) 9 10 func TestRun(t *testing.T) { 11 executable := "sesame" 12 if runtime.GOOS == "windows" { 13 executable += ".exe" 14 } 15 16 cmd := exec.Command("go", "build", "-o", executable, "./cmd/sesame") 17 defer os.Remove(executable) 18 out, err := cmd.CombinedOutput() 19 if err != nil { 20 t.Fatal(err.Error() + ":" + string(out)) 21 } 22 23 pwd, _ := os.Getwd() 24 defer os.Chdir(pwd) 25 os.Chdir("./testdata/testmod") 26 cmd = exec.Command("../../" + executable) 27 out, err = cmd.CombinedOutput() 28 if err != nil { 29 t.Fatal(err.Error() + ":" + string(out)) 30 } 31 cmd = exec.Command("go", "test", "./...") 32 out, err = cmd.CombinedOutput() 33 if err != nil { 34 t.Fatal(err.Error() + ":" + string(out)) 35 } 36 t.Log(string(out)) 37 }