15 #ifndef INCG_IRIS_IUTEST_TAP_PRINTER_HPP_77055C2B_AAE1_4944_A61C_26C58B04B37B_
16 #define INCG_IRIS_IUTEST_TAP_PRINTER_HPP_77055C2B_AAE1_4944_A61C_26C58B04B37B_
21 #include "../iutest_core.hpp"
22 #include "../internal/iutest_log_stream.hpp"
23 #include "../internal/iutest_filepath.hpp"
34 class TAPPrintListener :
public EmptyTestEventListener
63 class TAPFileGeneratorListener :
public TAPPrintListener
65 ::std::string m_output_path;
73 SetFilePath(directory);
79 const ::std::string&
GetFilePath()
const {
return m_output_path; }
84 void SetFilePath(
const char* directory)
86 if( directory == NULL || *directory ==
'\0' )
88 m_output_path = internal::posix::GetCWD();
92 detail::iuFilePath path(directory);
93 if( path.IsDirectory() )
95 m_output_path = directory;
99 m_output_path = path.RemoveFileName().ToString();
106 IUTEST_UNUSED_VAR(test);
110 IUTEST_UNUSED_VAR(test_property);
130 IUTEST_UNUSED_VAR(test);
134 detail::iuConsole::color_output(detail::iuConsole::yellow
140 detail::LogStream stream;
151 detail::iuConsole::output(
"1..%d\n", number-1);
155 stream->Printf(
"# %s started.\n", test_suite.
name());
157 for(
int i=0, test_count=test_suite.
total_test_count(); i < test_count; ++i )
163 stream->Printf(
"ok %d # SKIP - %s\n", top+i, test_info->
name());
169 stream->Printf(
"not ok %d - %s ", top+i, test_info->
name() );
173 ::std::string summary = part.make_message();
175 detail::StringReplace(summary,
'\n',
", ");
176 stream->Printf(
"%s. ", summary.c_str() );
178 stream->Printf(
"\n");
182 stream->Printf(
"ok %d - %s\n", top+i, test_info->
name() );
187 stream->Printf(
"# %s ended.\n", test_suite.
name());
196 IUTEST_UNUSED_VAR(test);
197 IFile* fp = detail::IFileSystem::New();
203 ::std::string filepath = m_output_path;
204 ::std::string name = test_suite.
name();
205 detail::StringReplace(name,
'/',
"_");
206 filepath += detail::GetPathSeparator();
212 fprintf(stderr,
"Unable to open file \"%s\".\n", filepath.c_str());
221 detail::IFileSystem::Free(fp);
ファイルクラスインターフェイス
Definition: iutest_file.hpp:41
bool Open(const char *filename, int mode)
開く
Definition: iutest_file.hpp:60
@ OpenWrite
書き込み
Definition: iutest_file.hpp:47
virtual void Close()=0
閉じる
static TestEventListener * SetUp()
TAPFileGeneratorListener に切り替え
Definition: iutest_tap_printer.hpp:119
const ::std::string & GetFilePath() const
出力パスの取得
Definition: iutest_tap_printer.hpp:80
virtual void OnTestRecordProperty(const TestProperty &test_property) IUTEST_CXX_OVERRIDE
RecordProperty 時に呼ばれます
Definition: iutest_tap_printer.hpp:109
TAPFileGeneratorListener(const char *directory=NULL)
コンストラクタ
Definition: iutest_tap_printer.hpp:72
virtual void OnTestProgramEnd(const UnitTest &test) IUTEST_CXX_OVERRIDE
テストプログラム終了時に呼ばれます
Definition: iutest_tap_printer.hpp:191
virtual void OnTestProgramStart(const UnitTest &test) IUTEST_CXX_OVERRIDE
テストプログラム開始時に呼ばれます
Definition: iutest_tap_printer.hpp:105
TAP出力イベントリスナー
Definition: iutest_tap_printer.hpp:36
void OnReportTestSuite(detail::IOutStream *const stream, const TestSuite &test_suite, int top=1)
TestSuite 毎の処理
Definition: iutest_tap_printer.hpp:154
static TestEventListener * SetUp()
TAPPrintListener に切り替え
Definition: iutest_tap_printer.hpp:51
virtual void OnTestProgramStart(const UnitTest &test) IUTEST_CXX_OVERRIDE
テストプログラム開始時に呼ばれます
Definition: iutest_tap_printer.hpp:129
virtual void OnTestProgramEnd(const UnitTest &test) IUTEST_CXX_OVERRIDE
テストプログラム終了時に呼ばれます
Definition: iutest_tap_printer.hpp:139
static const StateVariable< ::std::string > & get_output_option()
出力オプション
Definition: iutest_env.hpp:358
static const char * test_filter()
フィルター文字列
Definition: iutest_env.hpp:360
イベントリスナー
Definition: iutest_listener.hpp:64
イベントリスナーの管理クラス
Definition: iutest_listener.hpp:169
TestEventListener * Release(TestEventListener *listener)
リスナーの解放
Definition: iutest_listener.hpp:184
void Append(TestEventListener *listener)
リスナーの追加
Definition: iutest_listener.hpp:179
TestEventListener * default_result_printer() const IUTEST_CXX_NOEXCEPT_SPEC
デフォルト出力リスナーの取得
Definition: iutest_listener.hpp:201
@ FILTERING_TESTS
テストのフィルタリング
Definition: iutest_env.hpp:147
static bool IsEnableFlag(int flag)
フラグが立っているかどうか
Definition: iutest_env.hpp:210
テスト情報クラス
Definition: iutest_info.hpp:38
const char * name() const
Definition: iutest_info.hpp:66
bool should_run() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_info.hpp:68
bool HasFailure() const
エラーが出たかどうか
Definition: iutest_info.hpp:115
const TestResult * result() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_info.hpp:80
テスト結果を示すクラス
Definition: iutest_result.hpp:57
テストプロパティ
Definition: iutest_result.hpp:159
int total_part_count() const
結果の数を取得
Definition: iutest_result.hpp:295
const TestPartResult & GetTestPartResult(int index) const
テスト結果の取得
Definition: iutest_result.hpp:308
TestSuite
Definition: iutest_suite.hpp:37
const TestInfo * GetTestInfo(int index) const
Definition: iutest_suite.hpp:105
const char * name() const
Definition: iutest_suite.hpp:75
int total_test_count() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_suite.hpp:78
テスト全体の管理者
Definition: iutest_core.hpp:36
static UnitTest * GetInstance()
UnitTest インスタンスの取得
Definition: iutest_core.hpp:43
TestEventListeners & listeners() const
Definition: iutest_core.hpp:123
int total_test_suite_count() const
Definition: iutest_core.hpp:91
const TestSuite * GetTestSuite(int index) const
Definition: iutest_core.hpp:115
#define IUTEST_CXX_OVERRIDE
override definition
Definition: iutest_compiler.hpp:747
iutest root namespace
Definition: iutest_charcode.hpp:33