Ссылка на первые шаги в документации : http://utplsql.oracledeveloper.nl/doc/fourstep.html
1.Устанавливаем utPLSQL.
Устанавливаем как сказано в разделе "Step 1. Install utPLSQL". Я ставил в отдельного пользователя UTP. Тут важно не забыть прописать отдельно право "GRANT EXECUTE ON DBMS_PIPE TO UTP" (мне сначала прав не хватило, и пакет UTPPIPE не скомпилировался)
2. Пишем тестовый пакет к собственному пакету.
Тест как в примере "Step 3. Build a test package." Имя тестового пакета = префикс "UT_" + имя рабочего пакета. Например, рабочий PNX_ENQUERY, тестовый UT_PNX_ENQUERY. префикс можно поменять в настройках. В тестах можно(и нужно) использовать набор утверждений из пакета utAssert, например utAssert.eq(...)
3. Запуск теста
"utPLSQL.test('PNX_ENQUERY',recompile_in => FALSE);". Заметьте, что PNX_ENQUERY - имя рабочего пакета.
Засада :
В документации написано так, что я полтора дня угробил пока понял как это запускать после внесения изменений. Итак, если править тестовый пакет, и без выхода из сессии(сеанса) пробовать запустить тесты, то будет всё-время ошибка на уровне пакетов utPLSQL. Поэтому, логично будет править в обычном режиме - и рабочий и тестовый пакеты, а вот для запуска я написал простенький скрипт, который запускает отдельную сессию SQLPlus и выполняет тесты в ней, отписывая результаты в локальный файл.
Вот так, например :
bat-ник:
sqlplus scott/tiger@(DESCRIPTION...) @splus_exec.sql
splus_exec.sql:
set serveroutput on
spool c:\Temp\aaa.txt
exec utPLSQL.test('PNX_ENQUERY',recompile_in => FALSE);
spool off
exit
4. Анализ результатов.
В файле результатов, полученном на выходе, будет большими буквами SUCCESS или FAILURE, и детали, с указанием мест ошибок (и хороших результатов тоже)
Например вот так
> SSSS U U CCC CCC EEEEEEE SSSS SSSS
> S S U U C C C C E S S S S
> S U U C C C C E S S
> S U U C C E S S
> SSSS U U C C EEEE SSSS SSSS
> S U U C C E S S
> S U U C C C C E S S
> S S U U C C C C E S S S S
> SSSS UUU CCC CCC EEEEEEE SSSS SSSS
SUCCESS: "PNX_ENQUERY"
> Individual Test Case Results:
>
SUCCESS - PNX_ENQUERY.UT_GETUNITS: EQ "Всё ок..." Expected "1" and got "1"
1.Устанавливаем utPLSQL.
Устанавливаем как сказано в разделе "Step 1. Install utPLSQL". Я ставил в отдельного пользователя UTP. Тут важно не забыть прописать отдельно право "GRANT EXECUTE ON DBMS_PIPE TO UTP" (мне сначала прав не хватило, и пакет UTPPIPE не скомпилировался)
2. Пишем тестовый пакет к собственному пакету.
Тест как в примере "Step 3. Build a test package." Имя тестового пакета = префикс "UT_" + имя рабочего пакета. Например, рабочий PNX_ENQUERY, тестовый UT_PNX_ENQUERY. префикс можно поменять в настройках. В тестах можно(и нужно) использовать набор утверждений из пакета utAssert, например utAssert.eq(...)
3. Запуск теста
"utPLSQL.test('PNX_ENQUERY',recompile_in => FALSE);". Заметьте, что PNX_ENQUERY - имя рабочего пакета.
Засада :
В документации написано так, что я полтора дня угробил пока понял как это запускать после внесения изменений. Итак, если править тестовый пакет, и без выхода из сессии(сеанса) пробовать запустить тесты, то будет всё-время ошибка на уровне пакетов utPLSQL. Поэтому, логично будет править в обычном режиме - и рабочий и тестовый пакеты, а вот для запуска я написал простенький скрипт, который запускает отдельную сессию SQLPlus и выполняет тесты в ней, отписывая результаты в локальный файл.
Вот так, например :
bat-ник:
sqlplus scott/tiger@(DESCRIPTION...) @splus_exec.sql
splus_exec.sql:
set serveroutput on
spool c:\Temp\aaa.txt
exec utPLSQL.test('PNX_ENQUERY',recompile_in => FALSE);
spool off
exit
4. Анализ результатов.
В файле результатов, полученном на выходе, будет большими буквами SUCCESS или FAILURE, и детали, с указанием мест ошибок (и хороших результатов тоже)
Например вот так
> SSSS U U CCC CCC EEEEEEE SSSS SSSS
> S S U U C C C C E S S S S
> S U U C C C C E S S
> S U U C C E S S
> SSSS U U C C EEEE SSSS SSSS
> S U U C C E S S
> S U U C C C C E S S
> S S U U C C C C E S S S S
> SSSS UUU CCC CCC EEEEEEE SSSS SSSS
SUCCESS: "PNX_ENQUERY"
> Individual Test Case Results:
>
SUCCESS - PNX_ENQUERY.UT_GETUNITS: EQ "Всё ок..." Expected "1" and got "1"
Комментариев нет:
Отправить комментарий