Как использовать тестовый пакет на игровой площадке?
testing
Пакет доступен на игровой площадке.
Как я могу использовать игровую площадку для демонстрации концепций тестирования без доступа к go test
?
Я предполагаю, что это возможно с помощью функции testing.RunTests. Мои попытки сделать это всегда генерируют только "тестирование: предупреждение: тесты не запускаются".
Пример: https://play.golang.org/p/PvRCMdeXhX
Для контекста, мой вариант использования для обмена быстрыми примерами тестов, примеров и тестов с коллегами. Я часто использую игровую площадку для обмена фрагментами кода.
3 ответа
Вам нужно использовать testing.Main
:
func main() {
testSuite := []testing.InternalTest{
{
Name: "TestCaseA",
F: TestCaseA,
},
}
testing.Main(matchString, testSuite, nil, nil)
}
https://play.golang.org/p/DQsIGKNWwd
Если вы хотите использовать "не рекомендуется", но нестабильно:
Ответ Дейва по- прежнему работает как способ запуска тестов вручную, но если вы читаете «О программе», тесты теперь поддерживаются автоматически:
Если программа содержит тесты или примеры и не содержит основной функции, служба запускает тесты. Тесты, скорее всего, не будут поддерживаться, поскольку программа работает в изолированной среде с ограниченными ресурсами.
Существуют ограничения по времени исполнения на детской площадке, и я считаю, что они меньше минимального времени исполнения, используемого скамейкой. Из рассмотрения источника go test
команда, похоже, текущая правильная точка входа для тестовtesting.MainStart
который вы можете или не можете использовать удачу. Технически это API для внутреннего использования и не подлежит руководству по совместимости, поэтому YMMV.