【问题标题】:Go example won't runGo 示例不会运行
【发布时间】:2015-06-01 13:05:00
【问题描述】:

我正在尝试将示例添加到包中,并通过go test 运行该示例,但是该示例永远不会运行。

例如,请参阅以下要点:https://gist.github.com/85469ecc65bb5bb85857

要点有example_test.go:

package cow_test

import (
    cow "gist.github.com/85469ecc65bb5bb85857"
)

func Example() {
    cow.Poke()
}

但是当我运行这个时:

# go test -v example_test.go 
testing: warning: no tests to run
PASS
ok      command-line-arguments  0.002s

但是 stdlib 中的其他包工作正常:

# cd /usr/lib/go/src/errors
# go test -v example_test.go 
=== RUN: Example
--- PASS: Example (0.00s)
PASS
ok      command-line-arguments  0.002s

我的例子有什么问题?

【问题讨论】:

  • 你应该 read the documentation about testing .. 在尝试编写测试之前你应该了解一些根本错误的事情。
  • ...我为您链接到文档...?
  • 您的评论基本上是“RTFM”评论,没有任何具体的错误示例或关注点。在我提供的场景中,我完全看不到任何违反测试文档的内容。当然没有什么“基本的”。
  • @Patrick RTFM 可能是一个完全有效的答案。提问者应该做研究并阅读基本的相关文件,而不是help vampires
  • @DaveC 除了在这种情况下,我显然已经阅读了文档,而 Simon 没有。如果他提供了任何额外的信息,这将是显而易见的,并且不会让每个人都头疼。

标签: testing go


【解决方案1】:

来自documentation

没有输出 cmets 的示例函数被编译但不被执行。

添加输出注释:

func Example() {
    junk.Poke()
    // Output: MOOOO!
}

【讨论】:

  • 显然,在输出和“:”之间有一个空格也很重要。把它放在这里,以防其他人不小心在那里增加了空间,然后浪费了一个小时来弄清楚它为什么不运行。
  • 确保// Output: 评论是最后一条评论也很重要。
  • 您也可以将实际输出放在// Output:行之后的单独注释行中
猜你喜欢
  • 1970-01-01
  • 2012-04-02
  • 2016-02-29
  • 2015-04-11
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
相关资源
最近更新 更多