Я разрабатываю веб-приложение с Go. Пока все хорошо, но теперь я интегрирую Wercker в инструмент CI и начал заботиться о тестировании. Но мое приложение сильно зависит от схемы конфигурации Cobra/Viper/flags/environment_variables, и я не знаю, как правильно инициализировать значения Viper перед запуском моего набора тестов. Любая помощь приветствуется.Cobra + Viper Golang Как проверить подкоманды?
6
A
ответ
6
Когда я использую Cobra/Viper или любую другую комбинацию помощников CLI, мой способ сделать это, чтобы инструмент CLI выполнял функцию, единственной целью которой является получение аргументов и передача их другому методу, который будет выполнять фактическая работа.
Вот короткий (и немой) Пример использования Cobra:
package main
import (
"fmt"
"os"
"github.com/spf13/cobra"
)
func main() {
var Cmd = &cobra.Command{
Use: "boom",
Short: "Explode all the things!",
Run: Boom,
}
if err := Cmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(-1)
}
}
func Boom(cmd *cobra.Command, args []string) {
boom(args...)
}
func boom(args ...string) {
for _, arg := range args {
println("boom " + arg)
}
}
Здесь функция Boom
трудно проверить, но boom
один легко.
Вы можете увидеть другой (не-немой) пример этого here (и соответствующий тест here).
Смежные вопросы
- 1. Как использовать подкоманду с cobra golang?
- 2. Как использовать golang viper Watchconfig & onConfigChange
- 3. Продвинутая конфигурация с golang Viper lib
- 4. Чтение кусок карты с Golang Viper
- 5. Использование delve с помощью подкоманды и флагов?
- 6. golang - Как проверить multipart.File information
- 7. Как проверить NaN в golang
- 8. Как человек находит подкоманды git's?
- 9. Как автозаполнять вложенные многоуровневые подкоманды?
- 10. Импорт Cobra/LDTP не работает
- 11. Как понять чистую архитектуру VIPER?
- 12. Оценки времени Баша Подкоманды
- 13. ошибка подкоманды dcos cassandra
- 14. оценка подкоманды Windows
- 15. Что в вашем .viper?
- 16. Создание Viper состояния глобальной
- 17. Golang: Как проверить, подключен ли сеанс/отключен
- 18. Как проверить функцию сна в golang
- 19. Как проверить недостающие зависимости в golang
- 20. golang рекурсивная функция, как проверить возврат?
- 21. Как проверить параллелизм и блокировку в golang?
- 22. Golang: Как проверить пустой массив (массив структур)
- 23. Как проверить основные функции пакета в golang?
- 24. как golang проверить переменная равна нулю
- 25. Golang: Как проверить строку timestamp MySQL
- 26. Как обрабатывать подкоманды CLI с argparse
- 27. Как создать подкоманды для программ Ruby?
- 28. Как реализовать подкоманды с помощью Boost.Program_options?
- 29. Как реализовать «вложенные» подкоманды в Python?
- 30. Как использовать yii2 подкоманды с git bash?