xtd - Reference Guide  0.1.1
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
settings.h
Go to the documentation of this file.
1 #pragma once
5 #include "../tunit_export.h"
6 #include <chrono>
7 #include <cstdlib>
8 #include <string>
9 
11 namespace xtd {
13  namespace tunit {
20  class tunit_export_ settings final {
21  public:
23  settings() = default;
24 
26  settings(const settings&) = default;
27  settings& operator=(const settings&) = default;
29 
33 
36  bool also_run_ignored_tests() const noexcept {return also_run_ignored_tests_;}
37 
40  void also_run_ignored_tests(bool also_run_ignored_tests) noexcept {also_run_ignored_tests_ = also_run_ignored_tests;}
41 
46  int exit_status() const noexcept {return exit_status_;}
47 
52  void exit_status(int exit_status) noexcept {exit_status_ = exit_status;}
53 
57  const std::string& filter_tests() const noexcept {return filter_tests_;}
58 
62  void filter_tests(const std::string& filter_tests) noexcept {filter_tests_ = filter_tests;}
63 
66  bool is_match_test_name(const std::string& test_class_name, const std::string& test_name) const noexcept {return pattern_compare(test_class_name + "." + test_name, filter_tests_);}
67 
70  bool list_tests() const noexcept {return list_tests_;}
71 
74  void list_tests(bool list_tests) noexcept {list_tests_ = list_tests;}
75 
78  bool output_color() const noexcept {return output_color_;}
79 
82  void output_color(bool output_color) noexcept {output_color_ = output_color;}
83 
86  bool output_xml() const noexcept {return output_xml_;}
87 
90  void output_xml(bool output_xml) noexcept {output_xml_ = output_xml;}
91 
94  std::string output_xml_path() const noexcept {return output_xml_path_;}
95 
98  void output_xml_path(const std::string& output_xml_path) noexcept {output_xml_path_ = output_xml_path;}
99 
103  bool shuffle_test() const noexcept {return shuffle_tests_;}
104 
108  void shuffle_test(bool shuffle_test) noexcept {shuffle_tests_ = shuffle_test;}
109 
113  int random_seed() const noexcept {return random_seed_;}
114 
118  void random_seed(int random_seed) noexcept {random_seed_ = random_seed;}
119 
123  int repeat_test() const noexcept {return repeat_tests_;}
124 
128  void repeat_tests(int repeat_tests) noexcept {repeat_tests_ = repeat_tests;}
129 
132  bool show_duration() const noexcept {return show_duration_;}
133 
136  void show_duration(bool show_duration) noexcept {show_duration_ = show_duration;}
137 
140  std::chrono::time_point<std::chrono::system_clock> end_time() const noexcept {return end_time_;}
141 
144  std::chrono::time_point<std::chrono::system_clock> start_time() const noexcept {return start_time_;}
145 
146  private:
147  friend class unit_test;
148 
149  bool pattern_compare(const std::string& name, const std::string& pattern) const noexcept {
150  if (pattern == "") return name == "";
151  if (name == "") return false;
152  if (pattern == "*" || pattern == "*.*") return true;
153  if (pattern[0] == '*') return pattern_compare(name, pattern.substr(1)) || pattern_compare(name.substr(1), pattern);
154  return ((pattern[0] == '?') || (name[0] == pattern[0])) && pattern_compare(name.substr(1), pattern.substr(1));
155  }
156 
157  void end_time(const std::chrono::time_point<std::chrono::system_clock>& end_time) noexcept {start_time_ = end_time;}
158  void start_time(const std::chrono::time_point<std::chrono::system_clock>& start_time) noexcept {start_time_ = start_time;}
159 
160  bool also_run_ignored_tests_ = false;
161  std::string filter_tests_ = "*.*";
162  int exit_status_ = EXIT_SUCCESS;
163  bool list_tests_ = false;
164  bool output_color_ = true;
165  bool output_xml_;
166  std::string output_xml_path_ = "tests.xml";
167  bool show_duration_ = true;
168  bool shuffle_tests_ = false;
169  int random_seed_ = 0;
170  int repeat_tests_ = 1;
171  std::chrono::time_point<std::chrono::system_clock> start_time_;
172  std::chrono::time_point<std::chrono::system_clock> end_time_;
173  };
174  }
175 }
The settings class contains xtd.tunit settings.
Definition: settings.h:20
void output_color(bool output_color) noexcept
Sets output color.
Definition: settings.h:82
std::string output_xml_path() const noexcept
Gets output xml path.
Definition: settings.h:94
int exit_status() const noexcept
Gets exit status.
Definition: settings.h:46
void random_seed(int random_seed) noexcept
Sets random seed value.
Definition: settings.h:118
void output_xml_path(const std::string &output_xml_path) noexcept
Sets output xml path.
Definition: settings.h:98
bool is_match_test_name(const std::string &test_class_name, const std::string &test_name) const noexcept
Return true if a specified test class name and specified test name match with the current filter test...
Definition: settings.h:66
std::chrono::time_point< std::chrono::system_clock > end_time() const noexcept
Gets unit test end time.
Definition: settings.h:140
void list_tests(bool list_tests) noexcept
Sets list tests.
Definition: settings.h:74
void also_run_ignored_tests(bool also_run_ignored_tests) noexcept
Sets also run ignored test.
Definition: settings.h:40
static xtd::tunit::settings & default_settings() noexcept
Get default settings instance.
bool shuffle_test() const noexcept
Gets shuffle tests.
Definition: settings.h:103
settings()=default
Creates new instance of settings.
void shuffle_test(bool shuffle_test) noexcept
Sets shuffle tests.
Definition: settings.h:108
bool output_xml() const noexcept
Gets output xml.
Definition: settings.h:86
std::chrono::time_point< std::chrono::system_clock > start_time() const noexcept
Gets unit test start time.
Definition: settings.h:144
void output_xml(bool output_xml) noexcept
Sets output xml.
Definition: settings.h:90
bool show_duration() const noexcept
Gets if show duration for each test.
Definition: settings.h:132
bool output_color() const noexcept
Gets output color.
Definition: settings.h:78
const std::string & filter_tests() const noexcept
Gets filter tests.
Definition: settings.h:57
void show_duration(bool show_duration) noexcept
Sets if show duration for each test.
Definition: settings.h:136
void repeat_tests(int repeat_tests) noexcept
Sets repeat tests count.
Definition: settings.h:128
int random_seed() const noexcept
Gets random seed value.
Definition: settings.h:113
bool list_tests() const noexcept
Gets list tests.
Definition: settings.h:70
int repeat_test() const noexcept
Gets repeat tests count.
Definition: settings.h:123
void exit_status(int exit_status) noexcept
Sets exit status.
Definition: settings.h:52
void filter_tests(const std::string &filter_tests) noexcept
Sets filter tests.
Definition: settings.h:62
The template class.
Definition: unit_test.h:32
#define tunit_export_
Define shared library export.
Definition: tunit_export.h:13
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17