Я пишу R-пакет (delftfews
) здесь, в офисе. мы используем svUnit
для модульного тестирования.
наш процесс описания новой функциональности: мы определяем новые модульные тесты, первоначально обозначенные как DEACTIVATED
; один блок тестов за время, когда мы их активируем, и реализуем функцию, описанную в тестах. почти все время у нас есть небольшое количество тестов DEACTIVATED, относительно функций, которые могут быть отброшены или будут реализованы.
моя проблема/вопрос: могу ли я изменить doSvUnit.R, чтобы R CMD check pkg
выдавал ПРИМЕЧАНИЕ (то есть пользовательское сообщение "ПРИМЕЧАНИЕ" вместо "ОК" ) в случае, если есть тесты DEACTIVATED?
теперь мы видим только, что активные тесты не дают ошибки:
.
.
* checking for unstated dependencies in tests ... OK
* checking tests ...
Running ‘doSvUnit.R’
OK
* checking PDF version of manual ... OK
что все в порядке, если все тесты успешны, но все в порядке, если есть пропущенные тесты и, безусловно, неправильно, если есть неудачные тесты. В этом случае я действительно хотел бы увидеть ПРИМЕЧАНИЕ или ПРЕДУПРЕЖДЕНИЕ, например следующее:
.
.
* checking for unstated dependencies in tests ... OK
* checking tests ...
Running ‘doSvUnit.R’
NOTE
6 test(s) were skipped.
WARNING
1 test(s) are failing.
* checking PDF version of manual ... OK
На данный момент мы должны открыть doSvUnit.Rout
для проверки реальных результатов теста.
Я связался с двумя сопровождающими в r-forge и CRAN, и они указали мне на источники R, в частности, testing.R
script.
Если я правильно понял, чтобы ответить на этот вопрос, нам нужно исправить пакет tools
:
- скрипты в каталоге тестов вызываются с помощью вызова
system
, - вывод (stdout и stderr) переходят в один файл,
- возможны два возможных результата: ok или не нормально,
поэтому я открыл запрос на изменение на R, предложив что-то вроде бит-кодирования статуса возврата, бит-0 для ERROR (так как он теперь), бит-1 для ПРЕДУПРЕЖДЕНИЯ, бит-2 для ПРИМЕЧАНИЕ.
с моей модификацией, было бы легко произвести этот вывод:
.
.
* checking for unstated dependencies in tests ... OK
* checking tests ...
Running ‘doSvUnit.R’
NOTE - please check doSvUnit.Rout.
WARNING - please check doSvUnit.Rout.
* checking PDF version of manual ... OK
Брайан Рипли ответил: "Есть, однако, несколько пакетов с правильно написанными модульными тестами которые выполняют сигнал по мере необходимости. Пожалуйста, обсудите это в другом месте: R-ошибки не являются местом, чтобы спросить вопросов. "и закрыл запрос на изменение.
У кого-нибудь есть подсказки?