2015-04-30 3 views
0

Когда я запускаю ЛЮБОЙ тест, я получаю то же сообщение. Вот пример теста:tcl tcltest неизвестный параметр -run

package require tcltest 
namespace import -force ::tcltest::* 
test foo-1.1 {save 1 in variable name foo} {} { 
    set foo 1 
} {1} 

Я получаю следующий вывод:

WARNING: unknown option -run: should be one of -asidefromdir, -constraints, -debug, -errfile, -file, -limitconstraints, -load, -loadfile, -match, -notfile, -outfile, -preservecore, -relateddir, -singleproc, -skip, -testdir, -tmpdir, or -verbose 

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

Update # 1:

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

[[email protected] ~]$ tcl 
tcl>package require tcltest 
2.3.3 
tcl>namespace import -force ::tcltest::* 
tcl>test foo-1.1 {save 1 in variable name foo} {expr 1+1} {2} 
tcl>echo [test foo-1.1 {save 1 in variable name foo} {expr 1+1} {2}] 

tcl> 

Как я могу получить его выходной проход или потерпеть неудачу?

+0

Я не могу воспроизвести это на примере. Может быть, в вашем коде есть чужой «-run»? –

+0

Я посылал другому процессу eval.который имел -run, мне пришлось удалить его из argv 'set :: argv [lreplace :: argv 0 0]'. Однако теперь нет выхода. –

+0

Не увидев ваш код, я понятия не имею, в чем проблема. –

ответ

1

Вы не получаете какой-либо вывод из команды test (пока тест проходит, как в примере: если он не работает, команда печатает «содержимое тестового примера»/«фактический результат»/ожидаемый результат ", см. также примечание о конфигурации ниже). Статистика теста сохраняется внутри: вы можете использовать команду cleanupTests для печати номеров Total/Passed/Skipped/Failed (эта команда также сбрасывает счетчики и выполняет некоторую очистку).

(При запуске runAllTests, он запускает тестовые файлы в дочерних процессах, перехватывать вывод каждого файл cleanupTests и добавить их до итога.)

внутренней статистики, собранной во время тестирования доступно в AFACT незарегистрированного переменные пространства имен, такие как ::tcltest::numTests. Если вы хотите самостоятельно работать со статистикой, вы можете получить к ним доступ до, позвонив по номеру cleanupTests, например.

parray ::tcltest::numTests 
array set myTestData [array get ::tcltest::numTests] 
set passed $::tcltest::numTests(Passed) 

Посмотрите на источник tcltest в вашей библиотеке, чтобы увидеть, какие переменные доступны.

Количество вывода команды test настраивается, и вы можете получить вывод, даже если тест пройден, если добавить p/pass к опции -verbose. Эта опция также позволяет вам иметь меньше выходных данных при сбое и т. Д.

Вы также можете создать команду ::tcltest::ReportToMaster, которая, если она существует, будет вызываться cleanupTests с соответствующими данными в качестве аргументов. Похоже, что это подавляет как вывод статистики, так и, по крайней мере, большинство сбросов и очистки. (Я не очень далеко расследовал этот метод.) Имейте в виду, что возиться с этим, скорее всего, создаст проблемы, чем проблемы, но если вы пишете собственное тестовое программное обеспечение на основе tcltest, вы все равно можете посмотреть на Это.

О, пожалуйста, используйте новый синтаксис для команды test. Это более подробно, но в дальнейшем вы поблагодарите себя, если начнете с этого.

обязательное но-довольно-бесполезно (в данном случае) документации ссылка: tcltest

+0

Спасибо, я печатаю сейчас. Вы говорите, что возвращает его как строку, но когда я делаю 'set u [cleanupTests], ставит $ u' переменную $ u - пустую строку. Есть ли способ получить вывод в переменную? –

+0

Спасибо за ваше время и ваше обновление! –

+0

Команда 'test' производит _plenty_ вывода, если тест завершился с ошибкой. Это просто тихо, если все сработало ... –

Смежные вопросы