Advertisement
42ama

CreatioSDK ReadMe

Dec 10th, 2021
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.84 KB | None | 0 0
  1. Для начала тестирования нужно:
  2.  
  3. 1. Проинициализировать WorkspaceConsole, запустив файл <bpmPath>\Terrasoft.WebApp\DesktopBin\PrepareWorkspaceConsole.x64.bat
  4. В той же папке в конфиге Terrasoft.Tools.WorkspaceConsole.exe.config выставить fileDesignMode = false.
  5.  
  6. 2. Добавить в проект app.config, добавить в <appSettings> новую настройку с ключом BpmPath, которая должна
  7. указывать на локальную папку с bpm'online (c:\Apps\PROJ_QUA_7130). Желательно указать путь до папки на сервере QAS
  8. Внимание! На квасе папка Apps лежит на диске D:
  9.  
  10. 3. Каждому из разработчиков надо добавить файл app.{MachineName}.config. MachineName должен совпадать с названием вашего
  11. разработческого компа (в окне C# Interactive выполните Environment.MachineName).
  12. Скопировать содержимое app.config и исправить настройку BpmPath под себя.
  13. Тестовый класс будет пытаться загрузить настройки из конфига под вашу машину, и только если не найдет - загрузит app.config.
  14.  
  15. 4. Не забыть поставить всем файлам *.config в свойствах Copy to Output Directory = Always
  16.  
  17. 5. Написать свой тест, наследуя его от BpmOnlineTestBase. Там в свойстах есть UserConnection и даже AppConnection.
  18.  
  19. 6. Учтите, что строка подключения к БД берется не из конфига WorkspaceConsole, а из файла ConnectionStrings.config в корне bpm.
  20. Так что если у вас там Integrated Security, проверьте, чтобы под вашей локальной учеткой был доступ к БД bpm проекта.
  21.  
  22. 7. При первом запуске базовый тестовый класс создаст пару таблиц в БД, хранимку и навесит на каждую из таблиц сущностей по триггеру,
  23. название которого формируется по шаблону <название таблицы>$Track. Триггер складывает события добавления/удаления сущностей в лог,
  24. расположенный в таблице $UnitTestTrackEntity. Триггер срабатывает только когда сущности создаются/удаляются в тесте, при обычной работе
  25. с bpm данные туда не попадают. По этой же таблице производится очистка тестовых данный. Если по какой-то причине удаление не пройдет,
  26. в поле RollbackError будет текст исключения. Удалите ручками либо допишите свой кастомный метод очистки тестовых данных.
  27. Да, таблицы Sys* и QRTZ* не трекаются.
  28.  
  29. 8. В таблице $UnitTestTriggers отслеживаются все таблицы, на которые навешаны триггеры. Триггер навешивается автоматически при вставке в эту
  30. таблицу, но вставлять надо по 1 записи за раз (базовый класс теста делает это автоматически, ручками ничего не надо).
  31. Если хотите отключить трекер для определенной таблицы, просто обновите ее запись в этой таблице, поставьте Enabled = 0, триггер отключится.
  32. Не надо ничего удалять из нее, при следующем запуске теста механизм добьет туда отсутствующие записи.
  33.  
  34. 9. Очистка БД от тестовых записей выполняется при запуске тестов. Можно дополнительно чистить при завершении тестов (срабатывает только если
  35. тесты не упали). Для этого переопределить свойство CleanupOnExit и возвращать true.
  36.  
  37. A. Для очистки БД от вспомогательных юинт-тестовых штук можно использовать скрипт Cleanup.sql
  38.  
  39. B. Для ручной очистки БД после прогона тестов вызвать хранимку UnitTest$Rollback
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement