iutest  1.17.1.0
iutest_stderr_xml_generator.hpp
[詳解]
1 //======================================================================
2 //-----------------------------------------------------------------------
13 //-----------------------------------------------------------------------
14 //======================================================================
15 #ifndef INCG_IRIS_IUTEST_STDERR_XML_GENERATOR_HPP_44748A14_3446_49D5_8ECE_05ABED0FFF33_
16 #define INCG_IRIS_IUTEST_STDERR_XML_GENERATOR_HPP_44748A14_3446_49D5_8ECE_05ABED0FFF33_
17 
18 //======================================================================
19 // include
21 
22 namespace iutest
23 {
24 
25 //======================================================================
26 // class
27 
28 namespace detail
29 {
30 
34 template<typename T, typename ::std::string (*GetXmlPath)()>
35 class StderrXmlGeneratorListenerBase : public T
36 {
37 public:
42  explicit StderrXmlGeneratorListenerBase(const ::std::string& path) : T(path) {}
43 
44  ~StderrXmlGeneratorListenerBase() {}
45 
46 #if IUTEST_HAS_FOPEN
47 private:
48  StdErrorFile m_stderr;
49 
50  virtual bool FileOpen(const char* path)
51  {
52  if( m_stderr.Open(path, IFile::OpenAppend) )
53  {
54  this->m_fp = &m_stderr;
55  return true;
56  }
57  return false;
58  }
59  virtual void FileClose()
60  {
61  this->m_fp = NULL;
62  }
63 #endif
64 
65 public:
67  static bool SetUp()
68  {
69  ::std::string xmlpath = GetXmlPath();
70  if( !xmlpath.empty() )
71  {
72  TestEnv::event_listeners().set_default_xml_generator(new StderrXmlGeneratorListenerBase(xmlpath));
73  return true;
74  }
75  return false;
76  }
77 };
78 
79 } // end of namespace detail
80 
81 typedef detail::StderrXmlGeneratorListenerBase<
82  DefaultXmlGeneratorListener, TestEnv::get_report_xml_filepath> StderrXmlGeneratorListener;
83 typedef detail::StderrXmlGeneratorListenerBase<
84  JunitXmlGeneratorListener, TestEnv::get_report_junit_xml_filepath> StderrJunitXmlGeneratorListener;
85 
86 } // end of namespace iutest
87 
88 #endif // INCG_IRIS_IUTEST_STDERR_XML_GENERATOR_HPP_44748A14_3446_49D5_8ECE_05ABED0FFF33_
iutest_junit_xml_generator.hpp
output junit xml event listener
iutest::TestEnv::get_report_junit_xml_filepath
::std::string get_report_junit_xml_filepath()
junit xml 出力パスを取得
iutest_config.hpp
iris unit test config
iutest
iutest root namespace
Definition: iutest_charcode.hpp:31
iutest::TestEnv::get_report_xml_filepath
::std::string get_report_xml_filepath()
xml 出力パスを取得
iutest::IFile::OpenAppend
@ OpenAppend
追記
Definition: iutest_file.hpp:40