Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Для начала тестирования нужно:
- 1. Проинициализировать WorkspaceConsole, запустив файл <bpmPath>\Terrasoft.WebApp\DesktopBin\PrepareWorkspaceConsole.x64.bat
- В той же папке в конфиге Terrasoft.Tools.WorkspaceConsole.exe.config выставить fileDesignMode = false.
- 2. Добавить в проект app.config, добавить в <appSettings> новую настройку с ключом BpmPath, которая должна
- указывать на локальную папку с bpm'online (c:\Apps\PROJ_QUA_7130). Желательно указать путь до папки на сервере QAS
- Внимание! На квасе папка Apps лежит на диске D:
- 3. Каждому из разработчиков надо добавить файл app.{MachineName}.config. MachineName должен совпадать с названием вашего
- разработческого компа (в окне C# Interactive выполните Environment.MachineName).
- Скопировать содержимое app.config и исправить настройку BpmPath под себя.
- Тестовый класс будет пытаться загрузить настройки из конфига под вашу машину, и только если не найдет - загрузит app.config.
- 4. Не забыть поставить всем файлам *.config в свойствах Copy to Output Directory = Always
- 5. Написать свой тест, наследуя его от BpmOnlineTestBase. Там в свойстах есть UserConnection и даже AppConnection.
- 6. Учтите, что строка подключения к БД берется не из конфига WorkspaceConsole, а из файла ConnectionStrings.config в корне bpm.
- Так что если у вас там Integrated Security, проверьте, чтобы под вашей локальной учеткой был доступ к БД bpm проекта.
- 7. При первом запуске базовый тестовый класс создаст пару таблиц в БД, хранимку и навесит на каждую из таблиц сущностей по триггеру,
- название которого формируется по шаблону <название таблицы>$Track. Триггер складывает события добавления/удаления сущностей в лог,
- расположенный в таблице $UnitTestTrackEntity. Триггер срабатывает только когда сущности создаются/удаляются в тесте, при обычной работе
- с bpm данные туда не попадают. По этой же таблице производится очистка тестовых данный. Если по какой-то причине удаление не пройдет,
- в поле RollbackError будет текст исключения. Удалите ручками либо допишите свой кастомный метод очистки тестовых данных.
- Да, таблицы Sys* и QRTZ* не трекаются.
- 8. В таблице $UnitTestTriggers отслеживаются все таблицы, на которые навешаны триггеры. Триггер навешивается автоматически при вставке в эту
- таблицу, но вставлять надо по 1 записи за раз (базовый класс теста делает это автоматически, ручками ничего не надо).
- Если хотите отключить трекер для определенной таблицы, просто обновите ее запись в этой таблице, поставьте Enabled = 0, триггер отключится.
- Не надо ничего удалять из нее, при следующем запуске теста механизм добьет туда отсутствующие записи.
- 9. Очистка БД от тестовых записей выполняется при запуске тестов. Можно дополнительно чистить при завершении тестов (срабатывает только если
- тесты не упали). Для этого переопределить свойство CleanupOnExit и возвращать true.
- A. Для очистки БД от вспомогательных юинт-тестовых штук можно использовать скрипт Cleanup.sql
- B. Для ручной очистки БД после прогона тестов вызвать хранимку UnitTest$Rollback
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement