0

Je cours des tests dans golang et je veux éviter de courir les plus lents, par exemple celui-ci utilise bcrypt il est lent:conditionnelle des tests en cours d'exécution avec des drapeaux de construction ne fonctionne pas

// +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) 
    } 
} 

Pour éviter l'exécution de cette à chaque itération, j'ai mis en place le drapeau // +build slow. Cela ne devrait fonctionner que si vous faites go test -tags slow mais malheureusement il s'exécute à chaque fois (l'indicateur -v montre qu'il est en cours d'exécution).

Une idée de ce qui ne va pas?

+1

« Pour distinguer construire des contraintes de documentation du paquet, une série de contraintes de construction doit être suivie d'une ligne vide. » https://golang.org/pkg/go/build/ – JimB

+1

Je pense que le test des paquets a déjà un mode "court" déclenché avec -short. – Volker

Répondre

5

Votre // + construire besoins lents à suivre par une ligne blanche

Pour distinguer la construction des contraintes de documentation du paquet, une série de contraintes de construction doit être suivie d'une ligne vide.

visite Build Constraints