Skip to content

Commit 7384b8f

Browse files
committed
updated test results
1 parent 29ae096 commit 7384b8f

File tree

3 files changed

+26
-46
lines changed

3 files changed

+26
-46
lines changed

gtest/file_io.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ template <typename T>
5959
[[nodiscard]] static std::size_t count(const std::vector<T>& results,
6060
cuke::results::test_status status)
6161
{
62-
return std::count_if(results.begin(), results.end(), [&status](const auto& s)
63-
{ return s->status == status; });
62+
return std::count_if(results.begin(), results.end(),
63+
[&status](const auto& s) { return s.status == status; });
6464
}
6565
} // namespace details
6666

src/cucumber.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ void print_failed_scenarios()
1818
std::for_each(feature.scenarios.begin(), feature.scenarios.end(),
1919
[&first](const auto& scenario)
2020
{
21-
if (scenario->status == results::test_status::failed)
21+
if (scenario.status == results::test_status::failed)
2222
{
2323
if (first)
2424
{
2525
println("Failed Scenarios:");
2626
first = false;
2727
}
28-
print(internal::color::red, scenario->name);
29-
println(internal::color::black, " ", scenario->file, ':',
30-
scenario->line);
28+
print(internal::color::red, scenario.name);
29+
println(internal::color::black, " ", scenario.file, ':',
30+
scenario.line);
3131
}
3232
});
3333
}

src/test_results.hpp

+20-40
Original file line numberDiff line numberDiff line change
@@ -21,50 +21,34 @@ struct step
2121
{
2222
test_status status{test_status::passed};
2323
std::size_t line;
24+
std::string id;
2425
std::string name;
2526
std::string file;
27+
std::string keyword;
2628
std::string source_location;
2729
std::string doc_string;
2830
cuke::table table;
2931
};
30-
struct scenario_base
32+
struct scenario
3133
{
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;
4235
test_status status{test_status::passed};
4336
std::size_t line;
4437
std::string name;
4538
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;
6042
};
6143
struct feature
6244
{
6345
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;
6648
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{};
6852
};
6953

7054
class test_result
@@ -121,18 +105,14 @@ class test_result
121105
}
122106

123107
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(); }
128109
static void new_scenario_outline()
129110
{
130-
test_results().back().scenarios.emplace_back(
131-
std::make_unique<scenario_outline>());
111+
test_results().back().scenarios.emplace_back();
132112
}
133113
static void new_step()
134114
{
135-
test_results().back().scenarios.back()->steps.emplace_back();
115+
test_results().back().scenarios.back().steps.emplace_back();
136116
}
137117

138118
static void set_feature_to(test_status status)
@@ -141,21 +121,21 @@ static void set_feature_to(test_status status)
141121
}
142122
static void set_scenario_to(test_status status)
143123
{
144-
test_results().back().scenarios.back()->status = status;
124+
test_results().back().scenarios.back().status = status;
145125
}
146126
static void set_step_to(test_status status)
147127
{
148-
test_results().back().scenarios.back()->steps.back().status = status;
128+
test_results().back().scenarios.back().steps.back().status = status;
149129
}
150130

151131
[[nodiscard]] static feature& features_back() { return test_results().back(); }
152-
[[nodiscard]] static scenario_base& scenarios_back()
132+
[[nodiscard]] static scenario& scenarios_back()
153133
{
154-
return *test_results().back().scenarios.back();
134+
return test_results().back().scenarios.back();
155135
}
156136
[[nodiscard]] static step& steps_back()
157137
{
158-
return test_results().back().scenarios.back()->steps.back();
138+
return test_results().back().scenarios.back().steps.back();
159139
}
160140

161141
[[nodiscard]] std::string scenarios_to_string();

0 commit comments

Comments
 (0)