«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу точно протестировать `os.exit ()` in go и поддерживать покрытие кода?

Как я могу точно протестировать `os.exit ()` in go и поддерживать покрытие кода?

Опубликовано в 2025-03-13
Просматривать:457

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

тестирование сценариев OS.Exit в Go с информацией о покрытии (covalls.io/goveralls)®&&&&Z&&Zеда*&&&&&&yth Это вопросы вопроса о проблемах тестирования, которые используют OS.Exit () в Go, при том, что информация о освещении точно сообщается. Основная проблема заключается в том, что существующие методы, такие как повторное поведение двоичного, не отслеживают покрытие.

модифицированный подход для точного покрытия

для решения этого ограничения предлагается модифицированный подход тестирования. Вместо того, чтобы реинвестировать двоичный, тестирование выполняется путем изменения функции os.exit () или log.fatalf () для сбора кодов выхода или журналов ошибок. импорт ( "FMT" "ОС" ) var osexit = os.exit func crasher () { fmt.println («Пройдите в огне!») Osexit (1) }

модифицированный тестовый код: foo/bar_test.go

package foo импорт "тестирование" Func TestCrasher (t *testing.t) { // Сохранить текущую функцию и восстановить в конце: Oldosexit: = Osexit defer func () {osexit = oldosexit} () var получил инт myExit: = func (code int) { Получен = код } osexit = myexit Crasher () Если exp: = 1; Получил! = exp { T.Errorf («Ожидаемый код выхода: %d, Got: %d», Exp, Got) } }

] Этот подход позволяет инструментам покрытия для точного отслеживания выполнения OS.Exit () и гарантирует, что тестовые случаи, где процедуры выходят с OS.Exit (), рассматриваются в результатах теста.
package foo

import (
    "fmt"
    "os"
)

var osExit = os.Exit

func Crasher() {
    fmt.Println("Going down in flames!")
    osExit(1)
}

Заключение

. сценарии os.exit () при поддержании точной отчетности по покрытию.
]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3