@@ -21,50 +21,34 @@ struct step
21
21
{
22
22
test_status status{test_status::passed};
23
23
std::size_t line;
24
+ std::string id;
24
25
std::string name;
25
26
std::string file;
27
+ std::string keyword;
26
28
std::string source_location;
27
29
std::string doc_string;
28
30
cuke::table table;
29
31
};
30
- struct scenario_base
32
+ struct scenario
31
33
{
32
- enum class type
33
- {
34
- scenario = 0 ,
35
- scenario_outline
36
- };
37
-
38
- virtual ~scenario_base () = default ;
39
- virtual type get_type () const = 0;
40
-
41
- std::vector<step> steps{};
34
+ std::string id;
42
35
test_status status{test_status::passed};
43
36
std::size_t line;
44
37
std::string name;
45
38
std::string file;
46
- };
47
- struct scenario : public scenario_base
48
- {
49
- scenario_base::type get_type () const override
50
- {
51
- return scenario_base::type::scenario;
52
- }
53
- };
54
- struct scenario_outline : public scenario_base
55
- {
56
- scenario_base::type get_type () const override
57
- {
58
- return scenario_base::type::scenario;
59
- }
39
+ std::string keyword;
40
+ std::vector<step> steps{};
41
+ std::vector<std::pair<std::string, std::size_t >> tags;
60
42
};
61
43
struct feature
62
44
{
63
45
test_status status{test_status::passed};
64
- std::vector<std::unique_ptr<scenario_base>> scenarios{} ;
65
- std::size_t line ;
46
+ std::string id ;
47
+ std::string keyword ;
66
48
std::string name;
67
- std::string file;
49
+ std::string uri;
50
+ std::vector<std::pair<std::string, std::size_t >> tags;
51
+ std::vector<scenario> scenarios{};
68
52
};
69
53
70
54
class test_result
@@ -121,18 +105,14 @@ class test_result
121
105
}
122
106
123
107
static void new_feature () { test_results ().data ().emplace_back (); }
124
- static void new_scenario ()
125
- {
126
- test_results ().back ().scenarios .emplace_back (std::make_unique<scenario>());
127
- }
108
+ static void new_scenario () { test_results ().back ().scenarios .emplace_back (); }
128
109
static void new_scenario_outline ()
129
110
{
130
- test_results ().back ().scenarios .emplace_back (
131
- std::make_unique<scenario_outline>());
111
+ test_results ().back ().scenarios .emplace_back ();
132
112
}
133
113
static void new_step ()
134
114
{
135
- test_results ().back ().scenarios .back ()-> steps .emplace_back ();
115
+ test_results ().back ().scenarios .back (). steps .emplace_back ();
136
116
}
137
117
138
118
static void set_feature_to (test_status status)
@@ -141,21 +121,21 @@ static void set_feature_to(test_status status)
141
121
}
142
122
static void set_scenario_to (test_status status)
143
123
{
144
- test_results ().back ().scenarios .back ()-> status = status;
124
+ test_results ().back ().scenarios .back (). status = status;
145
125
}
146
126
static void set_step_to (test_status status)
147
127
{
148
- test_results ().back ().scenarios .back ()-> steps .back ().status = status;
128
+ test_results ().back ().scenarios .back (). steps .back ().status = status;
149
129
}
150
130
151
131
[[nodiscard]] static feature& features_back () { return test_results ().back (); }
152
- [[nodiscard]] static scenario_base & scenarios_back ()
132
+ [[nodiscard]] static scenario & scenarios_back ()
153
133
{
154
- return * test_results ().back ().scenarios .back ();
134
+ return test_results ().back ().scenarios .back ();
155
135
}
156
136
[[nodiscard]] static step& steps_back ()
157
137
{
158
- return test_results ().back ().scenarios .back ()-> steps .back ();
138
+ return test_results ().back ().scenarios .back (). steps .back ();
159
139
}
160
140
161
141
[[nodiscard]] std::string scenarios_to_string ();
0 commit comments