Во время выполнения тестового модуля Unit Test Framework может сообщать сообщения об успехе или неудаче утверждений, какие наборы тестов запускаются и многое другое (в частности, какие сообщения сообщаются, зависит от порога уровня журнала, выбранного пользователем).
Все эти сообщения составляют журнал Unit Test Framework. Существует множество способов (форматов) представления этих сообщений пользователю.
Повышаю. Тест поставляется с тремя форматами:
Формат журнала, подобный компилятору: предназначен для потребления человеком/диагностики
Формат журнала на основе XML: предназначен для обработки автоматизированными регрессионными тест-системами.
Формат журнала на основе JUNIT: предназначен для обработки автоматизированными регрессионными тест-системами.
Если вы хотите создать какой-то другой формат, вам нужно реализовать класс с конкретным интерфейсом и использовать методunit_test_log_t::set_formatter.во время инициализации тестового модуля для установки активного форматировщика. Классunit_test_log_formatterОпределяет этот интерфейс.
Этот интерфейс требует от вас форматировать все возможные сообщения, создаваемые в журнале. К ним относятся сообщения об ошибках в несостоявшихся утверждениях, сообщения о пойманных исключениях и информационные сообщения о запускаемых/завершенных тестовых блоках. Все методы в этом интерфейсе используют ссылку на стандартный поток в качестве первого аргумента. Именно туда должны быть направлены последние сообщения. Также вам предоставляется вся информация, необходимая для создания сообщения.
С момента повышения 1.62:
Каждый формататор может указывать выходной поток по умолчанию. Это удобно, например, для потоков, предназначенных для автоматизированной обработки, которые указывают на файл. См.get_default_stream_descriptionдля более подробной информации.
Каждый формататор может управлять своим собственным уровнем журнала через getter/setterget_log_levelиset_log_level.
Invoked by Unit Test Framework to start new log entry.
Call to this function starts new log entry. It is followed by series of log_entry_value calls and finally call to log_entry_finish. A log entry may consist of one or more values being reported. Some of these values will be plain strings, while others can be complicated expressions in a form of "lazy" expression template lazy_ostream.
Смотрите также:
log_entry_value, log_entry_finish
Note
call to this function may happen before any call to test_unit_start or all calls to test_unit_finish as the framework might log errors raised during global initialization/shutdown.
Invoked by Unit Test Framework to report a log entry content.
This is one of two overloaded methods to report log entry content. This one is used to report some complicated expression passed as an expression template lazy_ostream. In most cases default implementation provided by the framework should work as is (it just converts the lazy expression into a string.
Смотрите также:
log_entry_start, log_entry_finish
Параметры:
os
выходной поток для записи сообщений в
value
log entry "lazy" value
virtualvoidlog_entry_finish(std::ostream& os)=0;
Invoked by Unit Test Framework to finish a log entry report.
Смотрите также:
log_entry_start, log_entry_start
Параметры:
os
выходной поток для записи сообщений в
os
output stream для записи сообщений в
Смотрите также:
log_entry_context, entry_context_finish
Параметры:
l
entry log_level, to be used to fine tune the message
Возвращает поток по умолчанию для этого регистратора.
Возвращенная строка описывает поток так, как если бы он был передан из параметра командной строки«--log_sink». В этом отношенииstdoutиstderrимеют особое значение, указывающее стандартный выходной поток или поток ошибок соответственно.