有条件地运行测试,生成标志不起作用

时间:2016-03-10 18:42:28

标签: testing go conditional-compilation property-based-testing

我正在golang中运行一些测试,我想避免运行慢速测试,例如这个使用bcrypt所以它很慢:

// +build slow
package services

import (
    "testing"
    "testing/quick"
)

// using bcrypt takes too much time, reduce the number of iterations.
var config = &quick.Config{MaxCount: 20}

func TestSignaturesAreSame(t *testing.T) {
    same := func(simple string) bool {
        result, err := Encrypt(simple)
        success := err == nil && ComparePassWithHash(simple, result)
        return success
    }

    if err := quick.Check(same, config); err != nil {
        t.Error(err)
    }
}

为避免在每次迭代中运行此操作,我设置了// +build slow标志。这应该仅在执行go test -tags slow时运行,但不幸的是它每次都在运行(-v标志显示它正在运行)。

知道什么是错的吗?

1 个答案:

答案 0 :(得分:5)

您的// +build slow后面需要一个空行

要区分构建约束和包文档,必须在一系列构建约束后面加一个空行。

访问Build Constraints