没有发现银杏测试?
Ginkgo tests not being found?
我不明白为什么 'go' 找不到我的 Ginkgo 测试文件
我的结构如下所示:
events
├── button_not_shown_event.go
├── events_test
│ └── button_not_shown_event_test.go
这是我的 button_not_shown_event_test.go
的样子
package events_test
import (
"fmt"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = Describe("ButtonNotShownEvent", func() {
BeforeEach(func() {
Expect(false).To(BeTrue())
})
Context("ButtonNotShownEvent.GET()", func() {
It("should not return a JSONify string", func() {
Expect(true).To(BeFalse())
})
})
})
请注意,我专门编写了一个测试,因此它会失败。
但是每次我 运行 Ginkgo 测试我都会得到以下错误
go test ./app/events/events_test/button_not_shown_event_test.go -v
testing: warning: no tests to run
PASS
ok command-line-arguments 1.027s
很明显我在这里遗漏了一些东西。
有线索吗?
你有一些问题。
- 您没有导入 testing 包。这应该在 Ginkgo 生成的 bootstrap 文件中。
- bootstrap 文件还应包括作为参数的 testing.T 函数。例如
(t *testing.T)
.
- 您似乎在 Ginkgo 过程中跳过了一两步,导致先前的依赖项不存在。例如bootstrap/stub.
此外,经过几个人的大量评论。您可能需要阅读 Ginkgo 文档,以确保您正确遵循他们的流程以正确设置测试。
转到 events_test
目录和 运行:
ginkgo bootstrap
这是来自 Ginkgo 的 writing your first test docs:
To write Ginkgo tests for a package you must first bootstrap a Ginkgo
test suite. Say you have a package named books:
$ cd path/to/books
$ ginkgo bootstrap
ahillman3 的建议对正常测试有效,但如果您使用 Ginkgo 进行测试,则不适用。
我发现文档有点难以理解,而且他们在撰写本文时没有使用 go mod,因此我将分享我正在使用的最小设置。为简单起见,所有文件都在根项目目录中。
adder.go
:
package adder
func Add(a, b int) int {
return a + b
}
adder_test.go
:
package adder_test
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "example.com/adder"
)
var _ = Describe("Adder", func() {
It("should add", func() {
Expect(Add(1, 2)).To(Equal(3))
})
})
adder_suite_test.go
:
package adder_test
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"testing"
)
func TestAdder(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "Adder Suite")
}
现在运行go mod init example.com/adder; go mod tidy
:
PS > go version
go version go1.17.1 windows/amd64
PS > go mod init example.com/adder
go: creating new go.mod: module example.com/adder
go: to add module requirements and sums:
go mod tidy
PS > go mod tidy
go: finding module for package github.com/onsi/gomega
go: finding module for package github.com/onsi/ginkgo
go: found github.com/onsi/ginkgo in github.com/onsi/ginkgo v1.16.4
go: found github.com/onsi/gomega in github.com/onsi/gomega v1.16.0
最后,运行 go test
:
Running Suite: Adder Suite
==========================
Random Seed: 1631413901
Will run 1 of 1 specs
+
Ran 1 of 1 Specs in 0.042 seconds
SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
PASS
ok example.com/adder 0.310s
Linux.
一切都一样
我不明白为什么 'go' 找不到我的 Ginkgo 测试文件
我的结构如下所示:
events
├── button_not_shown_event.go
├── events_test
│ └── button_not_shown_event_test.go
这是我的 button_not_shown_event_test.go
的样子
package events_test
import (
"fmt"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = Describe("ButtonNotShownEvent", func() {
BeforeEach(func() {
Expect(false).To(BeTrue())
})
Context("ButtonNotShownEvent.GET()", func() {
It("should not return a JSONify string", func() {
Expect(true).To(BeFalse())
})
})
})
请注意,我专门编写了一个测试,因此它会失败。
但是每次我 运行 Ginkgo 测试我都会得到以下错误
go test ./app/events/events_test/button_not_shown_event_test.go -v
testing: warning: no tests to run
PASS
ok command-line-arguments 1.027s
很明显我在这里遗漏了一些东西。
有线索吗?
你有一些问题。
- 您没有导入 testing 包。这应该在 Ginkgo 生成的 bootstrap 文件中。
- bootstrap 文件还应包括作为参数的 testing.T 函数。例如
(t *testing.T)
. - 您似乎在 Ginkgo 过程中跳过了一两步,导致先前的依赖项不存在。例如bootstrap/stub.
此外,经过几个人的大量评论。您可能需要阅读 Ginkgo 文档,以确保您正确遵循他们的流程以正确设置测试。
转到 events_test
目录和 运行:
ginkgo bootstrap
这是来自 Ginkgo 的 writing your first test docs:
To write Ginkgo tests for a package you must first bootstrap a Ginkgo test suite. Say you have a package named books:
$ cd path/to/books $ ginkgo bootstrap
ahillman3 的建议对正常测试有效,但如果您使用 Ginkgo 进行测试,则不适用。
我发现文档有点难以理解,而且他们在撰写本文时没有使用 go mod,因此我将分享我正在使用的最小设置。为简单起见,所有文件都在根项目目录中。
adder.go
:
package adder
func Add(a, b int) int {
return a + b
}
adder_test.go
:
package adder_test
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "example.com/adder"
)
var _ = Describe("Adder", func() {
It("should add", func() {
Expect(Add(1, 2)).To(Equal(3))
})
})
adder_suite_test.go
:
package adder_test
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"testing"
)
func TestAdder(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "Adder Suite")
}
现在运行go mod init example.com/adder; go mod tidy
:
PS > go version
go version go1.17.1 windows/amd64
PS > go mod init example.com/adder
go: creating new go.mod: module example.com/adder
go: to add module requirements and sums:
go mod tidy
PS > go mod tidy
go: finding module for package github.com/onsi/gomega
go: finding module for package github.com/onsi/ginkgo
go: found github.com/onsi/ginkgo in github.com/onsi/ginkgo v1.16.4
go: found github.com/onsi/gomega in github.com/onsi/gomega v1.16.0
最后,运行 go test
:
Running Suite: Adder Suite
==========================
Random Seed: 1631413901
Will run 1 of 1 specs
+
Ran 1 of 1 Specs in 0.042 seconds
SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
PASS
ok example.com/adder 0.310s
Linux.
一切都一样