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  }