Чи існує встановлена найкраща практика розділення модульних тестів та інтеграційних тестів у GoLang (засвідчити)? У мене є поєднання модульних тестів (які не покладаються на будь-які зовнішні ресурси і, отже, працюють дуже швидко) та інтеграційних тестів (які покладаються на будь-які зовнішні ресурси і, отже, працюють повільніше). Отже, я хочу мати можливість контролювати, включати чи ні тести інтеграції, коли я кажу go test
.
Здається, найбільш прямим методом є визначення -інтегруючого прапора в основному:
var runIntegrationTests = flag.Bool("integration", false
, "Run the integration tests (in addition to the unit tests)")
А потім додати оператор if у верхню частину кожного тесту інтеграції:
if !*runIntegrationTests {
this.T().Skip("To run this test, use: go test -integration")
}
Це найкраще, що я можу зробити? Я шукав документацію для свідчень, щоб перевірити, чи існує, можливо, конвенція про іменування чи щось таке, що робить це для мене, але нічого не знайшов. Я щось пропускаю?
var integration = flag.Bool("integration", true, "Enable integration testing.")
поза функцією, змінна відображатиметься в обсязі пакета, а прапор працюватиме належним чином