J'apprends à utiliser le module https://github.com/rogpeppe/go-internal testscript pour tester les programmes cli.
Quand j'utilise cette ligne dans le fichier .txtar
:
stderr /No help topic/gm
...La sortie d'erreur réelle est :
No help topic for 'totalfoobar'
Je reçois une erreur usage: stderr [-count=N] 'pattern'
.
J'ai regardé la documentation ici et pour être honnête, c'est difficile à comprendre. Je ne vois aucune explication sur ce que signifie -count=N
.
J'ai essayé toutes les variantes ci-dessous :
stderr -count=1 No help topic for 'totalfoobar' stderr No help topic for 'totalfoobar' stderr *No help topic*
Quelle que soit la chaîne, l'assertion échoue toujours avec la même erreur.
Q : Comment puis-je obtenir une substring de la sortie totale stderr/stdout pour des tests plus flexibles ?
Citer le modèle avec des guillemets simples :
// parse parses a single line as a list of space-separated arguments // subject to environment variable expansion (but not resplitting). // Single quotes around text disable splitting and expansion. // To embed a single quote, double it: 'Don”t communicate by sharing memory.' func (ts *TestScript) parse(line string) []string
Le résultat est finalement transmis en tant que paramètre args
à scriptMatch. L'implémentation de scriptMatch montre qu'elle ne nécessite que args
参数传递给 scriptMatch 最后。 scriptMatch 的实现表明,除了可选的 -count
标志之外,它只需要 1 参数。如果 No help topic
1 paramètres en plus de l'indicateur facultatif -count
. Si Aucun sujet d'aide
n'est cité, il sera analysé en 3
extraUsage := "" want := 1 // [code truncated] if len(args) != want { ts.Fatalf("usage: %s [-count=N] 'pattern'%s", name, extraUsage) }
re, err := regexp.Compile(`(?m)` + pattern)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!