github.com/haya14busa/goverage@v0.0.0-20180129164344-eec3514a20b5/main_test.go (about)

     1  package main
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"testing"
     7  )
     8  
     9  func TestRun(t *testing.T) {
    10  	tmpfile, err := ioutil.TempFile("", "goverage-test")
    11  	if err != nil {
    12  		t.Fatal(err)
    13  	}
    14  	defer os.Remove(tmpfile.Name())
    15  	wd, err := os.Getwd()
    16  	if err != nil {
    17  		t.Fatal(err)
    18  	}
    19  	if err := os.Chdir("./example/root"); err != nil {
    20  		t.Fatal(err)
    21  	}
    22  	defer os.Chdir(wd)
    23  
    24  	if err := run(tmpfile.Name(), []string{"./..."}, "count", "", "", "", false, true); err != nil {
    25  		t.Fatal(err)
    26  	}
    27  	b, err := ioutil.ReadFile(tmpfile.Name())
    28  	if err != nil {
    29  		t.Fatal(err)
    30  	}
    31  	got := string(b)
    32  	wb, err := ioutil.ReadFile("coverage.ok")
    33  	if err != nil {
    34  		t.Fatal(err)
    35  	}
    36  	want := string(wb)
    37  	if got != want {
    38  		t.Errorf("got:\n%v\nwant:\n%v", got, want)
    39  	}
    40  }
    41  
    42  func TestRun_with_test_failed(t *testing.T) {
    43  	tmpfile, err := ioutil.TempFile("", "goverage-test")
    44  	if err != nil {
    45  		t.Fatal(err)
    46  	}
    47  	defer os.Remove(tmpfile.Name())
    48  	wd, err := os.Getwd()
    49  	if err != nil {
    50  		t.Fatal(err)
    51  	}
    52  	if err := os.Chdir("./example/fail"); err != nil {
    53  		t.Fatal(err)
    54  	}
    55  	defer os.Chdir(wd)
    56  	err = run(tmpfile.Name(), []string{"./..."}, "", "", "", "", false, true)
    57  	if err, ok := err.(*ExitError); !ok || err.Code != 1 {
    58  		t.Fatalf("unexpected error: %v", err)
    59  	}
    60  	b, err := ioutil.ReadFile(tmpfile.Name())
    61  	if err != nil {
    62  		t.Fatal(err)
    63  	}
    64  	got := string(b)
    65  	wb, err := ioutil.ReadFile("coverage.ok")
    66  	if err != nil {
    67  		t.Fatal(err)
    68  	}
    69  	want := string(wb)
    70  	if got != want {
    71  		t.Errorf("got:\n%v\nwant:\n%v", got, want)
    72  	}
    73  }