2014-03-31 142 views
0

我試圖在多個軟件包上運行GAE測試。我的應用程序(testapp)看起來如下:爲什麼測試沒有運行? (Golang) - goapp測試 - bug?

testapp> 
README.md  package1 package2 

每個軟件包有兩個go文件。一個是包本身,另一個是'測試'包。

包1

$ls package1 
package1.go package1_test.go 

包2

$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),結果是一樣的。

+0

有同樣的問題。你找到了解決方案嗎? –

+0

我想我做了,但不幸的是我忘了發佈解決方案。 – themihai

回答

0

要進行調試,請將事件拆分爲最小測試用例。例如,以下是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) {} 
+0

其實這就是我的應用程序的結構。我有package1_test.go package1.go和package2_test.go package2.go。 – themihai

相關問題