Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 没有找到银杏测试?_Go_Ginkgo_Gomega - Fatal编程技术网

Go 没有找到银杏测试?

Go 没有找到银杏测试?,go,ginkgo,gomega,Go,Ginkgo,Gomega,我不明白为什么“go”找不到我的测试文件 我的结构是这样的: events ├── button_not_shown_event.go ├── events_test │ └── button_not_shown_event_test.go 下面是我的按钮\u未显示\u event\u test.go的样子 package events_test import ( "fmt" . "github.com/onsi/ginkgo"

我不明白为什么“go”找不到我的测试文件

我的结构是这样的:

events
├── button_not_shown_event.go
├── events_test
│   └── button_not_shown_event_test.go
下面是我的
按钮\u未显示\u event\u 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())
        })
    })
})
请注意,我专门编写了一个测试,因此它将失败

但是每次运行银杏测试时,我都会得到以下错误

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.T函数作为参数。e、 g.
    (t*testing.t)
  • 看起来您跳过了流程中的一两个步骤,导致先前的依赖关系不存在。e、 g.引导/存根

  • 另外,经过几个人的大量评论。您可能需要阅读银杏文档,以确保正确遵循其流程,以正确设置测试。

    转到
    事件\u测试
    目录并运行:

    ginkgo bootstrap
    
    这是银杏的:

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

    $ cd path/to/books
    $ ginkgo bootstrap
    

    ahillman3的建议对正常测试有效,但如果您使用银杏进行测试,则不适用。

    输出显示您没有要运行的测试,因此没有任何测试会失败。理由:测试应该在被测试的同一个包中。阅读文件包。你运行过银杏引导程序吗?您可以看到生成的函数类似于:
    func TestEvents(t*testing.t)
    ?将
    按钮\u未显示\u事件\u测试。go
    放在与
    按钮\u未显示\u事件相同的目录中。go
    并给它相同的包名。最重要的是,在文件中放入一个实际测试,如dev.bmax解释的那样。@Viren您是否根据银杏文档完成了
    银杏引导程序
    ?OP使用的银杏与从正常的围棋测试用法,到一般的围棋语法和习惯用法,都有很大的不同。但是,我去看了银杏文档,他们仍然使用测试包。他们确实使用测试包,但只在他们提供的工具生成的存根中使用。不要将测试包导入到BDD测试文件中。他们还建议不要将测试与测试代码放在同一个包中;他们建议使用
    \u test
    包进行黑盒测试,就像OP所做的那样。我将编辑我的答案以删除相同的包项。但是,OP使用的是go-test命令,根据我在银杏文档中读到的内容,如果没有测试包,它将无法工作。