Существуют ли какие-нибудь хорошие автоматизированные наборы тестов для Perl?[закрыто]

StackOverflow https://stackoverflow.com/questions/49652

  •  09-06-2019
  •  | 
  •  

Вопрос

Кто-нибудь может предложить какой-нибудь хороший фреймворк автоматизированного набора тестов для Perl?

Это было полезно?

Решение

Это действительно зависит от того, что вы пытаетесь сделать, но вот некоторые предпосылки для большей части этого.

Во-первых, вы обычно пишете свои тестовые программы с помощью Test::More или Test::Simple в качестве основной программы тестирования:

use Test::More tests => 2;

is 3, 3, 'basic equality should work';
ok !0, '... and zero should be false';

Внутренне Test::Builder вызывается для вывода этих результатов тестирования в виде TAP (Протестируйте Любой протокол).Test::Harness (тонкая обертка вокруг TAP:: Harness) считывает и интерпретирует сигнал, сообщая вам, прошли ли ваши тесты или нет.Упомянутый выше инструмент "prove" поставляется в комплекте с Test::Harness, поэтому предположим, что сохраните вышеуказанное в каталоге t / (стандартный каталог тестирования Perl) как "numbers.t", затем вы можете запустить его с помощью этой команды:

prove --verbose t/numbers.t

Или запустить все тесты в этом каталоге (рекурсивно, предполагая, что вы хотите перейти в подкаталоги):

prove --verbose -r t/

(--многословие, конечно, необязательно).

В качестве дополнительного примечания, не используйте TestUnit.Многие люди рекомендуют его, но от него давным-давно отказались и он не интегрируется с современными инструментами тестирования.

Другие советы

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

Что именно вам нужно сделать и как вы пытаетесь вписать это в свой процесс?

Пока вы используете тесты, которые выдают вывод TAP (Test Anything Protocol), вы можете счесть это полезным: http://sourceforge.net/projects/smolder

Вы видели тлеющий?

"Агрегатор тестов Smoke, используемый разработчиками и тестировщиками для загрузки (автоматической или вручную) и просмотра тестов smoke / регрессии с использованием протокола Test Anything.Подробная информация и тенденции отображаются в виде графиков, а уведомления предоставляются по электронной почте или через каналы Atom ".

Если я вас правильно понял, вы ищете КРАН:: Жгут проводов

Если вы используете ExtUtils::Создатель или Модуль::Сборка, затем вы можете запускать все свои тесты автоматически, введя команду "make test" или "Build test", которая выполнит любые файлы *.t в подпапке t / вашего проекта.

Если вы не используете ни то, ни другое, то вы можете использовать КРАН:: Жгут проводов для автоматизации выполнения нескольких тестовых сценариев.

Чтобы на самом деле написать тесты, используйте Тест::Подробнее или любой из модулей, которые другие предложили здесь.

мы должны запустить все тестовые файлы для тестирования вручную

Вы, конечно, хотите использовать prove (запускает ваш тест) и / или Module ::Build (создает ваш код, а затем запускает ваши тесты, используя тот же код test harness, который prove использует внутри компании.)

Ты сказал:

"То, что я ищу, - это более автоматизированный фреймворк, который может выполнять инкрементное тестирование / проверки сборки и т.д."

Все еще не совсем уверен, чего ты добиваешься.Как упоминали другие, вы хотите взглянуть на вещи, основанные на Test::Harness / TAP.Подавляющее большинство сообщества по тестированию Perl использует этот фреймворк, так что вы получите гораздо больше поддержки (и полезного существующего кода), используя его.

Не могли бы вы рассказать немного больше о том, что вы подразумеваете под "инкрементным тестированием / проверкой сборки"?

Я предполагаю, что вы хотите разделить свои тесты на группы, чтобы запускать определенные наборы тестов только при определенных обстоятельствах?

Есть несколько способов сделать это.Самым простым было бы просто использовать файловую систему - разделите свои тестовые каталоги, чтобы у вас были такие вещи, как:

core/
 database.t
 infrastructure.t
style/
  percritic.t
ui/
  something.t
  something-else.t

И так далее...затем вы можете использовать инструмент командной строки "prove", чтобы запустить их все или только определенные каталоги и т.д.

в prove есть множество полезных опций, которые позволяют вам выбирать, какие тесты запускать и в каком порядке (напримертакие вещи, как самый последний неудачный заказ).Это - само по себе - вероятно, приведет вас к тому, что вам нужно.

(Кстати, важно получить последнюю версию Test::Simple/prove /etc.из CPAN.Последние версии обладают гораздо, гораздо большей функциональностью).

Если вы придерживаетесь OO-подхода или имеете предыдущий опыт работы с фреймворками xUnit, возможно, вам захочется взглянуть на Test::Class, который представляет собой фреймворк xUnit на Perl, построенный поверх слоя TAP / Test::Harness .Я думаю, что это намного лучше, чем PerlUnit - но я бы сказал это с тех пор, как я это написал :-)

Проверьте delicious для получения дополнительной информации о Test::Class http://delicious.com/tag/Test::Class

Если это не то, что вам нужно - не могли бы вы поподробнее рассказать о том, какую функциональность вы хотите?

Ваше здоровье,

Адриан

Лично мне больше всего нравится Test::, это в основном Test::More с некоторыми добавленными интересными функциями.

Выбранный фреймворк набора тестов - это Проверка::Жгут проводов, который заботится об управлении тестовым запуском, сборе результатов и т.д.

Существуют различные модули для предоставления определенных видов тестов, наиболее распространенные из которых можно найти в Тест::Простой и Тест::Подробнее (оба включены в дистрибутив Test-Simple).Все пространство имен Test в CPAN предназначено для специализированных модулей модульного тестирования, большинство из которых предназначены для запуска в режиме Test::Harness.

По соглашению тесты хранятся в каталоге t/ проекта, и каждый тестовый файл использует расширение файла .t ;тесты обычно выполняются с помощью

 prove t/*.t

Дистрибутивы модулей обычно включают в себя цель make с именем "test", которая запускает набор тестов перед установкой.По умолчанию процесс установки CPAN требует, чтобы тесты проходили после сборки, прежде чем будет установлен модуль.

Я бы выбрал Test::More или вообще все, что выводит КОСНИТЕСЬ

На данный момент мы используем Test::More, но текущая проблема заключается в том, что мы должны запускать все тестовые файлы вручную для тестирования.То, что я ищу, - это более автоматизированный фреймворк, который может выполнять инкрементное тестирование / проверки сборки и т.д.

Обертка вокруг Test::More для этого была бы идеальной, но подойдет и что-нибудь лучшее и более функциональное.

Я просматриваю PerlUnit, чтобы посмотреть, поможет ли это.

Знаете ли вы об утилите "prove" (из App::Prove)?Вы можете указать ему запускать все тесты рекурсивно в заданном каталоге, с подробностями или без них и т.д.

Для автоматического тестирования в perl взгляните на Проверка::Жгут проводов, который содержит prove инструмент.

Тот Самый prove инструмент может быть запущен с помощью следующей команды:

prove -r -Ilib t

Это приведет к рекурсивной проверке всех файлов *.t в каталоге 't/' при добавлении lib к пути включения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top