Tester les scénarios OS.exit dans Go With Coverage Information (Coveralls.io/goveralls)*&&& gobeleux qui utilise OS.Exit (). La principale préoccupation est que les méthodes existantes, telles que la réduction du binaire, ne suivent pas la couverture.
approche modifiée pour une couverture précise
pour aborder cette limitation, une approche de test modifiée est proposée. Plutôt que de réintégrer le binaire, les tests sont effectués en modifiant la fonction os.exit () ou log.fatalf () pour capturer des codes de sortie ou des journaux d'erreur.
package foo / bar.go modifié:
pack importer ( "FMT" "OS" ) var osexit = os.exit func crasher () { fmt.println ("descendre en flammes!") OSEXIT (1) }
package foo import ( "fmt" "os" ) var osExit = os.Exit func Crasher() { fmt.Println("Going down in flames!") osExit(1) }
package foo Importer des "tests" func testcrasher (t * test.t) { // Enregistrer la fonction de courant et restaurer à la fin: OLDOSEXIT: = OSEXIT différer func () {osexit = oldosexit} () var got int myExit: = func (code int) { got = code } OSEXIT = MyExit Crasher () Si exp: = 1; Got! = exp { T.Errorf ("Code de sortie attendu:% D, GOT:% D", EXP, GOT) } }
Cette approche permet aux outils de couverture de suivre avec précision l'exécution d'os.exit () et garantit que les cas de test où les routines sortent avec os.exit () sont couvertes dans les résultats du test. scénarios os.exit () tout en maintenant des rapports de couverture précis.Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3