1

我不明白为什么“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

很明显,我在这里遗漏了一些东西。

有什么线索吗?

4

3 回答 3

1

你有几个问题。

  1. 您没有导入测试包。这应该在 Ginkgo 生成的引导文件中。
  2. 引导文件还应包含 testing.T 函数作为参数。例如(t *testing.T)
  3. 看起来您在 Ginkgo 过程中跳过了一两步,导致先前的依赖项不存在。例如引导程序/存根。

此外,经过几个人的大量评论。您可能需要阅读 Ginkgo 文档,以确保您正确遵循他们的流程以正确设置测试。

于 2017-06-27T14:39:58.130 回答
0

转到events_test目录并运行:

ginkgo bootstrap

这是 Ginkgo编写的第一个测试文档

要为包编写 Ginkgo 测试,您必须首先引导 Ginkgo 测试套件。假设您有一个名为 books 的包:

$ cd path/to/books
$ ginkgo bootstrap

ahillman3 的建议适用于正常测试,但如果您使用 Ginkgo 进行测试,则不适用。

于 2021-02-19T18:52:42.143 回答
0

我发现文档有点令人困惑,在撰写本文时他们没有使用 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 的一切都是一样的。

于 2021-09-12T02:31:05.840 回答