"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso testar com precisão `os.exit ()` em Go e manter a cobertura do código?

Como posso testar com precisão `os.exit ()` em Go e manter a cobertura do código?

Postado em 2025-03-13
Navegar:344

... A principal preocupação é que os métodos existentes, como reinvestir o binário, não rastreem a cobertura. Em vez de reinventar o binário, o teste é realizado modificando a função OS.Exit () ou log.fatalf () para capturar códigos de saída ou logs de erros. importação ( "FMT" "OS" ) var osexit = os.exit func crasher () { fmt.println ("caindo em chamas!") OSEXIT (1) }

How Can I Accurately Test `os.Exit()` in Go and Maintain Code Coverage?

Código de teste modificado: foo/bar_test.go

pacote Foo importar "testes" func testcrasher (t *testing.t) { // Salvar a função atual e restaurar no final: Oldosexit: = OSexit adiar func () {OSexit = Oldosexit} () var got int myExit: = func (código int) { Got = Code } OSEXIT = MyExit Crasher () se exp: = 1; tenho! = exp { t.errorf ("Código de saída esperado: %d, obtido: %d", exp, obtido) } }

Essa abordagem permite que as ferramentas de cobertura rastreem com precisão a execução do OS.Exit () e garante que os casos de teste em que as rotinas saem com os.exit () sejam abordadas nos resultados dos testes. Testando com precisão os cenários OS.Exit (), mantendo relatórios de cobertura precisos.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3