github.com/UlisseMini/utils@v0.0.0-20181216031219-f016c7ea9463/test/test_test.go (about) 1 package test_test 2 3 import ( 4 "fmt" 5 "os" 6 "os/exec" 7 "testing" 8 "utils/test" 9 ) 10 11 func init() { 12 err := os.Chdir("./testdata") 13 if err != nil { 14 fmt.Println(err) 15 os.Exit(1) 16 } 17 18 cmd := exec.Command("go", "build", "one.go") 19 err = cmd.Run() 20 if err != nil { 21 fmt.Println("failed to build ./testdata/one.go") 22 os.Exit(1) 23 } 24 25 cmd = exec.Command("go", "build", "two.go") 26 err = cmd.Run() 27 if err != nil { 28 fmt.Println("failed to build ./testdata/two.go") 29 os.Exit(1) 30 } 31 } 32 33 func Test_test(t *testing.T) { 34 tc := test.Case{ 35 Path: "./one", 36 Expected: "one", 37 } 38 39 err := tc.Run() 40 if err != nil { 41 t.Fatal(err) 42 } 43 44 tc = test.Case{ 45 Path: "./two", 46 Expected: "one", 47 } 48 49 err = tc.Run() 50 if err == nil { 51 t.Fatal("expected an error got nil") 52 } 53 54 epErr := `Expected "one" got "two"` 55 if err.Error() != epErr { 56 t.Fatalf("expected %q got %q", epErr, err.Error()) 57 } 58 }