15 #ifndef INCG_IRIS_IUTEST_CORE_HPP_33560431_783B_4AE7_8FC8_6E78355CAF87_
16 #define INCG_IRIS_IUTEST_CORE_HPP_33560431_783B_4AE7_8FC8_6E78355CAF87_
34 class UnitTest :
public UnitTestImpl
124 #if IUTEST_HAS_TESTCASE
125 const TestCase* GetTestCase(
int index)
const {
return m_testsuites[index]; }
126 const TestCase* current_test_case()
const {
return m_current_testsuite; }
127 int total_test_case_count()
const {
return static_cast<int>(m_testsuites.size()); }
140 #if IUTEST_HAS_SEH && IUTEST_HAS_EXCEPTIONS
154 void TestProgramStart();
159 void SetUpTestIteration();
164 void EnvironmentSetUp();
169 void EnvironmentTearDown();
174 void TestProgramEnd();
180 instance().TestProgramEnd();
185 : m_repeat_counter(0)
186 , m_init_iutest_count(0)
187 , m_test_started(false)
188 , m_start_timestamp(0)
191 TestEnv::SetGlobalTestPartResultReporter(&m_default_test_part_result_reporter);
193 TestEnv::LoadEnvironmentVariable();
195 #if defined(_MSC_VER) && _MSC_VER < 1300
200 TestEnv::ReleaseGlobalTestEnvironment();
201 TestEnv::SetGlobalTestPartResultReporter(NULL);
208 #if IUTEST_HAS_PARAM_TEST
213 return m_param_testsuite_holder;
217 detail::ParamTestSuiteHolder m_param_testsuite_holder;
221 friend class UnitTestSource;
223 int m_repeat_counter;
224 int m_init_iutest_count;
227 detail::DefaultGlobalTestPartResultReporter m_default_test_part_result_reporter;
240 template<
class Tester>
245 TestInstance(
const char* testsuite,
const char* name,
TestTypeId id
247 : m_mediator(AddTestSuite(testsuite, id, setup, teardown))
248 , m_info(&m_mediator, name, &m_factory)
250 UnitTest::instance().AddTestInfo(m_mediator.ptr(), &m_info);
253 TestInstance(const ::std::string& testsuite,
const char* name,
TestTypeId id
255 : m_mediator(AddTestSuite(testsuite, id, setup, teardown))
256 , m_info(&m_mediator, name, &m_factory)
258 UnitTest::instance().AddTestInfo(m_mediator.ptr(), &m_info);
261 TestInstance(
const char* testsuite,
const char* name,
const char* value_params,
TestTypeId id
263 : m_mediator(AddTestSuite(testsuite, id, setup, teardown))
264 , m_info(&m_mediator, name, &m_factory)
266 m_info.set_value_param(value_params);
267 UnitTest::instance().AddTestInfo(m_mediator.ptr(), &m_info);
270 TestInstance(const ::std::string& testsuite,
const char* name,
const char* value_params,
TestTypeId id
272 : m_mediator(AddTestSuite(testsuite, id, setup, teardown))
273 , m_info(&m_mediator, name, &m_factory)
275 m_info.set_value_param(value_params);
276 UnitTest::instance().AddTestInfo(m_mediator.ptr(), &m_info);
282 #if !defined(IUTEST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS)
283 return UnitTest::instance().AddTestSuite<TestSuite>(testsuite, id, setup, teardown);
285 return UnitTest::instance().AddTestSuite(testsuite,
id, setup, teardown, detail::explicit_type<TestSuite>());
290 #if !defined(IUTEST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS)
291 return UnitTest::instance().AddTestSuite<TestSuite>(testsuite, id, setup, teardown);
293 return UnitTest::instance().AddTestSuite(testsuite,
id, setup, teardown, detail::explicit_type<TestSuite>());
298 TestSuiteMediator m_mediator;
300 iuFactory<Tester> m_factory;
307 # include "impl/iutest_core.ipp"
static int get_repeat_count()
繰り返し回数
Definition: iutest_env.hpp:357
static unsigned int current_random_seed()
乱数シード
Definition: iutest_env.hpp:356
イベントリスナーの管理クラス
Definition: iutest_listener.hpp:169
static const TestInfo * GetCurrentTestInfo()
実行中の TestInfo の取得
Definition: iutest_body.hpp:67
テスト情報クラス
Definition: iutest_info.hpp:38
テスト結果を示すクラス
Definition: iutest_result.hpp:216
TestSuite
Definition: iutest_suite.hpp:37
テスト全体の管理者
Definition: iutest_core.hpp:36
int reportable_test_count() const
TimeInMillisec elapsed_time() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_core.hpp:109
const TestSuite * current_test_suite() const
テスト中の TestSuite の取得
Definition: iutest_core.hpp:49
static UnitTest * GetInstance()
UnitTest インスタンスの取得
Definition: iutest_core.hpp:43
bool Failed() const
Definition: iutest_core.hpp:120
int failed_test_suite_count() const
int test_suite_to_run_count() const
const TestResult * ad_hoc_test_result() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_core.hpp:106
int successful_test_suite_count() const
int reportable_test_run_skipped_count() const
int failed_test_count() const
unsigned int random_seed() const
Definition: iutest_core.hpp:58
int reportable_disabled_test_count() const
int reportable_skip_test_count() const
int successful_test_count() const
int total_test_count() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_core.hpp:68
int repeat_count() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_core.hpp:64
TimeInMillisec start_timestamp() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_core.hpp:112
int test_to_run_count() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_core.hpp:72
const TestInfo * current_test_info() const
テスト中の TestInfo の取得
Definition: iutest_core.hpp:55
int test_run_skipped_count() const
int repeat_counter() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_core.hpp:61
int skip_test_count() const
int disabled_test_count() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_core.hpp:76
TestEventListeners & listeners() const
Definition: iutest_core.hpp:123
const TestResult * ad_hoc_testresult() const IUTEST_CXX_NOEXCEPT_SPEC
テスト実行中じゃないときのリザルトの取得
Definition: iutest_core.hpp:103
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_NOEXCEPT_SPEC
noexcept specification definition
Definition: iutest_compiler.hpp:811
iris unit test ファイルクラス ファイル
iris unit test parameter 定義 ファイル
#define IUTEST_PP_DISALLOW_COPY_AND_ASSIGN(TypeName)
コピー禁止定義
Definition: iutest_pp.hpp:31
iris unit test TestPartResult リポーター ファイル
iutest root namespace
Definition: iutest_charcode.hpp:33
detail::type_least_t< 8 >::UInt TimeInMillisec
ミリ秒単位を扱う型
Definition: iutest_defs.hpp:526
void(* SetUpMethod)()
SetUp 関数型
Definition: iutest_defs.hpp:523
void(* TearDownMethod)()
TearDown 関数型
Definition: iutest_defs.hpp:524
internal::TypeId TestTypeId
テスト識別型
Definition: iutest_defs.hpp:521