在heroku上运行golang测试

时间:2014-09-05 18:15:39

标签: heroku go

我或多或少遵循这些说明将我的应用部署到heroku。一切都运作良好。

http://mmcgrana.github.io/2012/09/getting-started-with-go-on-heroku.html

我有一些基准测试,我想在heroku上运行,以测试我的本地计算机和heroku盒之间的性能是否存在差异。不幸的是,我无法弄清楚如何运行它们(heroku无法找到go可执行文件)。有可能这样做吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我还没有使用Heroku。 Heroku可能使用go test命令运行基准测试时出现问题;临时目录可能有问题。

  

Command go

     

Test packages

     

'去测试'重新编译每个包以及任何带有名称的文件   匹配文件模式" * test.go"。名称以。开头的文件   " " (包括" _test.go")或"。"被忽略了。这些附加文件   可以包含测试函数,基准函数和示例   功能。请参阅帮助testfunc'更多。每个列出的包都会导致   执行单独的测试二进制文件。

     

该软件包内置在一个临时目录中,因此不会产生干扰   非测试安装。

尝试在程序中运行基准测试。例如,

package main

import (
    "fmt"
    "math"
    "testing"
)

// a function to be benchmarked
func Area(r float64) float64 {
    return math.Pi * r * r
}

// benchmark function
func BenchmarkArea(b *testing.B) {
    r := 42.0
    for i := 0; i < b.N; i++ {
        _ = Area(r)
    }
}

func main() {
    br := testing.Benchmark(BenchmarkArea)
    fmt.Println(br.String() + br.MemString())
}

输出:

2000000000           1.21 ns/op       0 B/op           0 allocs/op
  

Package testing

     

func Benchmark

func Benchmark(f func(b *B)) BenchmarkResult
     

Benchmark基准测试单一功能。用于创建自定义   不使用&#34; go test&#34;的基准测试命令。