extract go1.11 specific build scenarios

Этот коммит содержится в:
gedi 2018-11-08 17:08:56 +02:00
родитель 68c836441f
коммит d266d9188c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 56604CDCCC201556
2 изменённых файлов: 93 добавлений и 83 удалений

93
builder_go111_test.go Обычный файл
Просмотреть файл

@ -0,0 +1,93 @@
// +build go1.11
package godog
import (
"bytes"
"os"
"os/exec"
"path/filepath"
"testing"
)
func TestGodogBuildWithModuleOutsideGopath(t *testing.T) {
dir := filepath.Join(os.TempDir(), "godogs")
err := buildTestPackage(dir, builderFeatureFile, builderMainCodeFile, builderTestFile)
if err != nil {
os.RemoveAll(dir)
t.Fatal(err)
}
defer os.RemoveAll(dir)
prevDir, err := os.Getwd()
if err != nil {
t.Fatal(err)
}
if err := os.Chdir(dir); err != nil {
t.Fatal(err)
}
defer os.Chdir(prevDir)
if out, err := exec.Command("go", "mod", "init", "godogs").CombinedOutput(); err != nil {
t.Log(string(out))
t.Fatal(err)
}
var stdout, stderr bytes.Buffer
cmd := exec.Command("godog", "godogs.feature")
cmd.Stdout = &stdout
cmd.Stderr = &stderr
cmd.Env = os.Environ()
if err := cmd.Run(); err != nil {
t.Log(stdout.String())
t.Log(stderr.String())
t.Fatal(err)
}
}
// func TestGodogBuildWithModuleInsideGopath(t *testing.T) {
// gopath := filepath.Join(os.TempDir(), "_gp")
// dir := filepath.Join(gopath, "src", "godogs")
// err := buildTestPackage(dir, builderFeatureFile, builderMainCodeFile, builderTestFile)
// if err != nil {
// os.RemoveAll(gopath)
// t.Fatal(err)
// }
// defer os.RemoveAll(gopath)
// prevDir, err := os.Getwd()
// if err != nil {
// t.Fatal(err)
// }
// if err := os.Chdir(dir); err != nil {
// t.Fatal(err)
// }
// defer os.Chdir(prevDir)
// c := exec.Command("go", "mod", "init", "godogs")
// c.Env = os.Environ()
// c.Env = append(c.Env, "GOPATH="+gopath)
// c.Env = append(c.Env, "GO111MODULE=on")
// if out, err := c.CombinedOutput(); err != nil {
// t.Log(string(out))
// t.Fatal(err)
// }
// var stdout, stderr bytes.Buffer
// cmd := exec.Command("godog", "godogs.feature")
// cmd.Stdout = &stdout
// cmd.Stderr = &stderr
// cmd.Env = os.Environ()
// cmd.Env = append(cmd.Env, "GOPATH="+gopath)
// cmd.Env = append(cmd.Env, "GO111MODULE=on")
// if err := cmd.Run(); err != nil {
// t.Log(stdout.String())
// t.Log(stderr.String())
// t.Fatal(err)
// }
// fmt.Println(stdout.String())
// }

Просмотреть файл

@ -2,7 +2,6 @@ package godog
import ( import (
"bytes" "bytes"
"fmt"
"io/ioutil" "io/ioutil"
"os" "os"
"os/exec" "os/exec"
@ -277,88 +276,6 @@ func TestGodogBuildWithVendoredGodog(t *testing.T) {
} }
} }
func TestGodogBuildWithModuleOutsideGopath(t *testing.T) {
dir := filepath.Join(os.TempDir(), "godogs")
err := buildTestPackage(dir, builderFeatureFile, builderMainCodeFile, builderTestFile)
if err != nil {
os.RemoveAll(dir)
t.Fatal(err)
}
defer os.RemoveAll(dir)
prevDir, err := os.Getwd()
if err != nil {
t.Fatal(err)
}
if err := os.Chdir(dir); err != nil {
t.Fatal(err)
}
defer os.Chdir(prevDir)
if out, err := exec.Command("go", "mod", "init", "godogs").CombinedOutput(); err != nil {
t.Log(string(out))
t.Fatal(err)
}
var stdout, stderr bytes.Buffer
cmd := exec.Command("godog", "godogs.feature")
cmd.Stdout = &stdout
cmd.Stderr = &stderr
cmd.Env = os.Environ()
if err := cmd.Run(); err != nil {
t.Log(stdout.String())
t.Log(stderr.String())
t.Fatal(err)
}
}
func TestGodogBuildWithModuleInsideGopath(t *testing.T) {
gopath := filepath.Join(os.TempDir(), "_gp")
dir := filepath.Join(gopath, "src", "godogs")
err := buildTestPackage(dir, builderFeatureFile, builderMainCodeFile, builderTestFile)
if err != nil {
os.RemoveAll(gopath)
t.Fatal(err)
}
defer os.RemoveAll(gopath)
prevDir, err := os.Getwd()
if err != nil {
t.Fatal(err)
}
if err := os.Chdir(dir); err != nil {
t.Fatal(err)
}
defer os.Chdir(prevDir)
c := exec.Command("go", "mod", "init", "godogs")
c.Env = os.Environ()
c.Env = append(c.Env, "GOPATH="+gopath)
c.Env = append(c.Env, "GO111MODULE=on")
if out, err := c.CombinedOutput(); err != nil {
t.Log(string(out))
t.Fatal(err)
}
var stdout, stderr bytes.Buffer
cmd := exec.Command("godog", "godogs.feature")
cmd.Stdout = &stdout
cmd.Stderr = &stderr
cmd.Env = os.Environ()
cmd.Env = append(cmd.Env, "GOPATH="+gopath)
cmd.Env = append(cmd.Env, "GO111MODULE=on")
if err := cmd.Run(); err != nil {
t.Log(stdout.String())
t.Log(stderr.String())
t.Fatal(err)
}
fmt.Println(stdout.String())
}
func TestBuildTestRunner(t *testing.T) { func TestBuildTestRunner(t *testing.T) {
bin := filepath.Join(os.TempDir(), "godog.test") bin := filepath.Join(os.TempDir(), "godog.test")
if err := Build(bin); err != nil { if err := Build(bin); err != nil {