Skip to content

Commit bb8e89a

Browse files
authored
feat: added single include header that exposes all required interfaces in the cucumber_cpp namespace (#149)
1 parent 842cfd4 commit bb8e89a

File tree

14 files changed

+53
-30
lines changed

14 files changed

+53
-30
lines changed

cucumber_cpp/CMakeLists.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,20 @@
1+
2+
13
add_subdirectory(library)
24
add_subdirectory(runner)
35
add_subdirectory(example)
46
add_subdirectory(acceptance_test)
7+
8+
add_library(cucumber_cpp INTERFACE)
9+
10+
target_sources(cucumber_cpp INTERFACE
11+
CucumberCpp.hpp
12+
)
13+
14+
target_include_directories(cucumber_cpp INTERFACE
15+
./
16+
)
17+
18+
target_link_libraries(cucumber_cpp INTERFACE
19+
cucumber_cpp.library
20+
)

cucumber_cpp/CucumberCpp.hpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#ifndef CUCUMBER_CPP_CUCUMBER_CPP_HPP
2+
#define CUCUMBER_CPP_CUCUMBER_CPP_HPP
3+
4+
#include "cucumber_cpp/library/Application.hpp"
5+
#include "cucumber_cpp/library/Context.hpp"
6+
#include "cucumber_cpp/library/Hooks.hpp"
7+
#include "cucumber_cpp/library/Steps.hpp"
8+
#include "cucumber_cpp/library/report/Report.hpp"
9+
10+
namespace cucumber_cpp
11+
{
12+
using cucumber_cpp::library::Application;
13+
using cucumber_cpp::library::Context;
14+
using cucumber_cpp::library::engine::Step;
15+
using cucumber_cpp::library::report::ReportHandlerV2;
16+
}
17+
18+
#endif

cucumber_cpp/acceptance_test/CMakeLists.txt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ set(CMAKE_COMPILE_WARNING_AS_ERROR On)
22

33
add_executable(cucumber_cpp.acceptance_test ${CCR_EXCLUDE_FROM_ALL})
44

5-
target_sources(cucumber_cpp.acceptance_test PRIVATE
6-
Main.cpp
7-
)
85
target_link_libraries(cucumber_cpp.acceptance_test PRIVATE
9-
cucumber_cpp.library
6+
cucumber_cpp
7+
cucumber_cpp.runner
108
cucumber_cpp.acceptance_test.hooks
119
cucumber_cpp.acceptance_test.steps
1210
)
@@ -18,7 +16,7 @@ target_sources(cucumber_cpp.acceptance_test.custom PRIVATE
1816
)
1917

2018
target_link_libraries(cucumber_cpp.acceptance_test.custom PRIVATE
21-
cucumber_cpp.library
19+
cucumber_cpp
2220
cucumber_cpp.acceptance_test.hooks
2321
cucumber_cpp.acceptance_test.steps
2422
)

cucumber_cpp/acceptance_test/Main.cpp

Lines changed: 0 additions & 9 deletions
This file was deleted.

cucumber_cpp/acceptance_test/MainCustom.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
#include "cucumber_cpp/library/Application.hpp"
2-
#include <span>
1+
#include "cucumber_cpp/CucumberCpp.hpp"
32

43
int main(int argc, char** argv)
54
{
6-
cucumber_cpp::library::Application application{};
5+
cucumber_cpp::Application application{};
76

87
application.CliParser().add_flag("--required", *application.ProgramContext().EmplaceAt<bool>("--required"))->required();
98

cucumber_cpp/acceptance_test/features/test_hooks.feature

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
@bats
22
Feature: Test scenario and step hook bindings
33

4+
@program_hooks
5+
Scenario: Run failing Scenario hooks before
6+
Given a given step
7+
48
@fail_scenariohook_before
59
Scenario: Run failing Scenario hooks before
610
Given a given step

cucumber_cpp/acceptance_test/test.bats

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ teardown() {
7575
}
7676

7777
@test "Run Program hooks" {
78-
run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag @bats --report console
78+
run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag @bats and @program_hooks --report console
7979
assert_success
8080

8181
assert_output --partial "HOOK_BEFORE_ALL"

cucumber_cpp/example/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ target_sources(cucumber_cpp.example PRIVATE
88
)
99

1010
target_link_libraries(cucumber_cpp.example PRIVATE
11-
cucumber_cpp.library
11+
cucumber_cpp
1212
cucumber_cpp.example.hooks
1313
cucumber_cpp.example.steps
1414
)

cucumber_cpp/example/Main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
#include "cucumber_cpp/library/Application.hpp"
1+
#include "cucumber_cpp/CucumberCpp.hpp"
22
#include <string>
33

44
int main(int argc, char** argv)
55
{
6-
cucumber_cpp::library::Application application{};
6+
cucumber_cpp::Application application{};
77

88
application.CliParser().add_option("--com", *application.ProgramContext().EmplaceAt<std::string>("--com"))->required();
99
auto* stOpt = application.CliParser().add_flag("--st", *application.ProgramContext().EmplaceAt<bool>("--st"));

cucumber_cpp/example/hooks/Hooks.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#include "cucumber_cpp/library/Hooks.hpp"
22
#include "cucumber_cpp/example/fixtures/Fixture.hpp"
33
#include "cucumber_cpp/library/Context.hpp"
4-
#include <algorithm>
5-
#include <string_view>
4+
#include <iostream>
5+
#include <string>
66

77
HOOK_BEFORE_ALL()
88
{

0 commit comments

Comments
 (0)