Интеграционное тестирование всего * существующего * приложения (с автоматическим выполнением набора тестов) - PullRequest
5 голосов
/ 24 мая 2010

Я только что присоединился к команде, работающей над существующим веб-приложением Java.Передо мной была поставлена ​​задача создать пакет автоматизированных интеграционных тестов, который должен запускаться, когда разработчики фиксируют наш сервер непрерывной интеграции (TeamCity), который автоматически развертывается на нашем промежуточном сервере - поэтому в действительности тесты будут выполняться на нашем промежуточном сервере веб-приложений.

Я много читал об автоматизированном тестировании интеграции с такими фреймворками, как Watir, Selenium и RWebSpec.Я создал тесты во всех этих областях, и хотя я предпочитаю Ватира, я открыт для всего.

То, что мне не стало ясно, это то, как создать полный набор тестов для приложения и как выполнить этот набор полностью во время выполнения некоторого сценария.Я могу с радостью создавать отдельные тесты различной сложности, но в моих знаниях есть пробел, как связать все во что-то полезное.

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

Спасибо!

Ответы [ 3 ]

2 голосов
/ 22 октября 2010

Обычно вы собираетесь использовать Rake для автоматизации выполнения теста.Предполагая, что вы используете Test :: Unit для тестирования, вы должны настроить свой Rakefile со следующим содержимым:

require 'rubygems'
require 'rake'
require 'rake/testtask'

Rake::TestTask.new do |t|
  t.libs << "test"
  t.test_files = FileList.new 'test/**/ts_*.rb'.sort
  t.loader = :rake
  t.verbose = true
end

По умолчанию все файлы комплекта тестов настраиваются в папке проекта test.Затем вы можете запустить их с помощью следующей команды:

rake test

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

rake TEST=path/under/test/folder/tc_filename.rb test

Поскольку вы используете TeamCity, вы можете затем создать сборку и использовать Rake Runner для выполнения ваших наборов тестов.TeamCity будет извлекать всю тестовую информацию (выходные данные, трассировки стека и т. Д.) В пользовательский интерфейс, как это происходит с JUnit.Это очень хорошая интеграция.

Для справки, ваши тестовые наборы будут выглядеть примерно так:

require 'test/unit'
require 'path/relative/to/your/tests/tc_some_test1.rb'
require 'path/relative/to/your/tests/tc_some_test2.rb'

Таким образом, вы можете упорядочить свои тестовые наборы в каждом тестовом наборе по своему усмотрению.

1 голос
/ 30 мая 2010

Я закончил писать тесты, используя Rspec, чтобы делать утверждения против объектов Watir (если быть точным). Это позволило мне использовать Rake для автоматизации запуска тестов. Есть несколько хороших статей об использовании Rspec и Rake вместе. Наш сервер сборки (teamcity) имеет хуки для задач Rake, поэтому это работает хорошо. Мне потребовалось некоторое время, чтобы собрать воедино все, так что я решил опубликовать окончательное решение здесь.

0 голосов
/ 24 мая 2010

Чтобы запустить тест Ватира в файле, просто запустите файл:

$ ruby tests_1.rb

Для выполнения тестов в нескольких файлах запустите все файлы. Вы можете создать файл, который будет запускать их все (например, all_tests.rb):

load "tests_1.rb"
load "tests_2.rb"

, а затем просто запустите файл:

$ ruby ​​all_tests.rb

Я не знаком с TeamCity, но вы можете просто запустить all_tests.rb из него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...