【问题标题】:Why the tests are not running ? ( Golang ) - goapp test - bug?为什么测试没有运行? ( Golang ) - goapp 测试 - 错误?
【发布时间】:2014-03-31 21:50:28
【问题描述】:

我正在尝试对多个包运行GAE 测试。我的应用(testapp)如下所示:

testapp> 
README.md     package1 package2

每个包都有两个 go 文件。一个是包本身,另一个是“测试”包。

package1

$ls package1
package1.go package1_test.go

package2

$ls package2
package2.go package2_test.go

为了运行我使用的测试

goapp test -v ./...

输出:

 warning: building out-of-date packages:
        github.com/mihai/API
    installing these packages with 'go test -i ./...' will speed future tests.

    === RUN TestGetDiskFile
    codelistgobfile.gob
    codelist.gob written successfully
    --- PASS: TestGetDiskFile (0.00 seconds)
    PASS
    ok      testapp/package1    0.010s

但是,正如您在上面看到的,它似乎只运行来自 package1 的第一个测试 ( TestGetDiskFile )。之后它会卡住。我没有得到任何输出。如果我进入每个包(cd package 1)并运行goapp test,所有测试(大约 20 个测试)都会成功运行

知道如何修复/运行所有测试而不会卡住,或者至少如何进一步调试它?这是goapp 错误吗? 我在两台不同的机器(Mac osx 和 ubuntu)上试过,结果是一样的。

【问题讨论】:

  • 有同样的问题。你找到解决办法了吗?
  • 我想我做到了,但不幸的是我忘记发布解决方案了。

标签: google-app-engine go


【解决方案1】:

要进行调试,请将事情分解为最小的测试用例。例如,以下是go test -v ./... 的最小测试用例。为goapp test -v ./... 尝试类似的操作。

$ dir
package1  package2
$ tree ../packages
../packages
├── package1
│   └── package1_test.go
└── package2
    └── package2_test.go
2 directories, 2 files
$ go test -v ./...
=== RUN TestPackage1
--- PASS: TestPackage1 (0.00 seconds)
PASS
ok      packages/package1   0.004s
=== RUN TestPackage2
--- PASS: TestPackage2 (0.00 seconds)
PASS
ok      packages/package2   0.004s
$

文件:package1_test.go

package package1

import "testing"

func TestPackage1(t *testing.T) {}

文件:package2_test.go

package package2

import "testing"

func TestPackage2(t *testing.T) {}

【讨论】:

  • 其实我的应用的结构是这样的。我有 package1_test.go package1.go 和 package2_test.go package2.go。
猜你喜欢
  • 2016-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多