test build with modules
Этот коммит содержится в:
родитель
064e523a0c
коммит
68c836441f
1 изменённых файлов: 140 добавлений и 1 удалений
141
builder_test.go
141
builder_test.go
|
@ -187,7 +187,97 @@ func TestGodogBuildWithoutTestSourceNotInGoPath(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGodogBuildWithinGopath(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)
|
||||||
|
|
||||||
|
pkg := filepath.Join(gopath, "src", "github.com", "DATA-DOG")
|
||||||
|
if err := os.MkdirAll(pkg, 0755); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
prevDir, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// symlink godog package
|
||||||
|
if err := os.Symlink(prevDir, filepath.Join(pkg, "godog")); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := os.Chdir(dir); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer os.Chdir(prevDir)
|
||||||
|
|
||||||
|
cmd := exec.Command("godog", "godogs.feature")
|
||||||
|
|
||||||
|
var stdout, stderr bytes.Buffer
|
||||||
|
cmd.Stdout = &stdout
|
||||||
|
cmd.Stderr = &stderr
|
||||||
|
cmd.Env = os.Environ()
|
||||||
|
cmd.Env = append(cmd.Env, "GOPATH="+gopath)
|
||||||
|
|
||||||
|
if err := cmd.Run(); err != nil {
|
||||||
|
t.Log(stdout.String())
|
||||||
|
t.Log(stderr.String())
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestGodogBuildWithVendoredGodog(t *testing.T) {
|
func TestGodogBuildWithVendoredGodog(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)
|
||||||
|
|
||||||
|
pkg := filepath.Join(dir, "vendor", "github.com", "DATA-DOG")
|
||||||
|
if err := os.MkdirAll(pkg, 0755); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
prevDir, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// symlink godog package
|
||||||
|
if err := os.Symlink(prevDir, filepath.Join(pkg, "godog")); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := os.Chdir(dir); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer os.Chdir(prevDir)
|
||||||
|
|
||||||
|
cmd := exec.Command("godog", "godogs.feature")
|
||||||
|
|
||||||
|
var stdout, stderr bytes.Buffer
|
||||||
|
cmd.Stdout = &stdout
|
||||||
|
cmd.Stderr = &stderr
|
||||||
|
cmd.Env = os.Environ()
|
||||||
|
cmd.Env = append(cmd.Env, "GOPATH="+gopath)
|
||||||
|
|
||||||
|
if err := cmd.Run(); err != nil {
|
||||||
|
t.Log(stdout.String())
|
||||||
|
t.Log(stderr.String())
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGodogBuildWithModuleOutsideGopath(t *testing.T) {
|
||||||
dir := filepath.Join(os.TempDir(), "godogs")
|
dir := filepath.Join(os.TempDir(), "godogs")
|
||||||
err := buildTestPackage(dir, builderFeatureFile, builderMainCodeFile, builderTestFile)
|
err := buildTestPackage(dir, builderFeatureFile, builderMainCodeFile, builderTestFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -206,11 +296,60 @@ func TestGodogBuildWithVendoredGodog(t *testing.T) {
|
||||||
}
|
}
|
||||||
defer os.Chdir(prevDir)
|
defer os.Chdir(prevDir)
|
||||||
|
|
||||||
cmd := exec.Command("godog", "godogs.feature")
|
if out, err := exec.Command("go", "mod", "init", "godogs").CombinedOutput(); err != nil {
|
||||||
|
t.Log(string(out))
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
var stdout, stderr bytes.Buffer
|
var stdout, stderr bytes.Buffer
|
||||||
|
cmd := exec.Command("godog", "godogs.feature")
|
||||||
cmd.Stdout = &stdout
|
cmd.Stdout = &stdout
|
||||||
cmd.Stderr = &stderr
|
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 {
|
if err := cmd.Run(); err != nil {
|
||||||
t.Log(stdout.String())
|
t.Log(stdout.String())
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче