Nano Hash - криптовалюты, майнинг, программирование

Правильная структура тестовых файлов при использовании ginkgo/gomega для тестирования приложения Go

Мое приложение Go (сервис Restfull API) растет, и я решил использовать тестирование. Мой выбор - Гинкго/Гомега.

Учебный сайт (http://onsi.github.io/ginkgo/#getting-started-writing-your-first-test) я обнаружил, что для запуска теста вам нужно

  1. перейти к пакету
  2. гинкго бутстрап

Это создаст файл [your_package]_suite_test в корне папки пакета. Ничего страшного.

Но затем, если я хочу протестировать какую-то функцию, файл или пакет, мне нужно снова перейти в папку и сгенерировать ginkgo [test_name], который создаст здесь тестовый файл-заглушку.

Итак, в один момент у нас будет много беспорядка: файлы нашего приложения и файлы тестирования вместе в одной папке. Например, server.go, server_test.go, auth.go, auth_test.go и т. д.

Я хочу удалить файлы приложений и тестовые файлы. Например, я хочу создать папку с тестами в корневом пакете и разместить все тесты здесь. Итак, когда мне нужно протестировать приложение, я могу запустить go test ./tests

Правильно ли использовать Ginkgo/Gomega с отдельной папкой тестов?

Спасибо.

04.09.2015

  • Платформы тестирования IMO не нужны с Go. Похоже, вы никогда не писали тесты Go, вы пытались просто прочитать testing документацию по пакету и написать старые добрые идиоматические тесты Go? Я бы начал с этого и рассматривал что-то еще, только если/когда вы обнаружите, что чего-то не хватает в простом Go и testing. 04.09.2015

Ответы:


1

В Go вы можете запустить все тесты данного проекта с помощью одной команды, независимо от того, где находятся ваши тестовые файлы. В терминале перейдите в базовый каталог вашего проекта и запустите:

$ go test ./...

В моих проектах Go у меня обычно есть отдельный скрипт Bash, который сделает это за меня. Вы можете разместить его, например, в bin/run_tests.sh со следующим содержимым:

#!/bin/bash -e
time go test ./... | grep -v '^?'

Сделайте этот файл исполняемым и запустите его:

$ ./bin/run_tests.sh

У меня нет отдельной папки test. Судя по большинству проектов Go, я вижу, что разработчики хотят иметь тестовый файл в том же каталоге, где находится тестируемый файл.

03.04.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..