xBDD is a Behavior Driven Development framework that runs inside the testing framework of your choice (eventually, currently only running in MSTest :) ) and provides the following key features:
- Streamlined UI and API Testing Framework
- Product Documentation Generator
- Development Progress Reporting (Backlog and WIP Visibility)
When connected to xBDD's online services, this framework will also provide:
- Product Development Flow Dashboards
- Product Planning and Collaboration Workspaces
- Feature Utilization and Performance Monitoring System THIS ONLINE SERVICE HAS YET TO BE DEVELOPED
This project is currently being built. The objectives for it are changing as it is built. Here is the current list of goals:
- Common UI Step Library - Provide a simple set of pre-built steps that enable the rapid development of UI automation tests on top of a headless Selenium chrome webdriver.
- Common API Step Library - Provide a simple set of pre-build steps that enable the rapid development of template-based, automated API tests.
- Custom Step Resuse - The framework should encourage/simplify the development of custom step libraries that streamline the process of building future tests.
- Intellisense Discovery - A developer should be able to easily find existing steps using the standard intellisense features included in Visual Studio, VS Code, or other IDEs.
- Testing Platform Agnostic - This framework should be usable in any testing platform that supports .Net code.
- DotNet Core (Cross Platform) Capable - Capable of running where ever dotnet core can run.
- Hybrid Asynchronous Support - You can define scenarios that run both synchronous and asynchronous steps.
- Lanugage Portable - We are organizing it's own testing library so that reusing the tests on a ported xBDD instance (like to JavaScript) will be possible.
- Gherkin Style Output - Test runs will generate information that can be used to build reports that can be shared with a non-developer to explain how the system has been designed to meet the user need.
- Advanced Html Reports - Out of the box, xBDD will provide graphically pleasing reports from a test run that can be used as documentation/training for the application as well as report on development progress.
- Database Accessible - Ability to publish test passes to a database to allow for enhanced reporting and serve as a basis for showing product growth/progress over time.
This project is being used to test itself. The goal is that the reports from the test results will ultimately serve as documentation and training materials. The current reports (as well as the organization of features and scenarios) is a long ways from accomplishing this. However, you can see thier current state now. Just keep in mind that some are disorganized, will be rewritten, and will likely look very different once the initial version of this platform is released.
Note: Capability, Feature, and Scenario names will expand when clicked.
- My Sample Product - A sample set of projects that cover all outcomes at all levels.
- xBDD Features Summary - Provides a top level view of the progress in developing each capability of xBDD using xBDD. This list shows summaries of each test run and can drill down in to a test summary report for each project/capability of xBDD.
-
Generating Code - Features for generating solutions (with multiple test projects), test projects and features.
-
Generating Reports - Features for generating reports.
-
Defining Features - Features for defining features, scenarios, and steps.
-
Automating UI Testing - Features for running browser automation tests.
-
Streamlining API Testing - Features for testing an API.
-
Running Scenarios - Features for running filtered sets of scenarios.
-
Install the dotnet xbdd tools...
dotnet tool install --global dotnet-xbdd --version 0.0.8-alpha
-
Create a directory for your test project and open your terminal in that project.
-
Create the test project...
dotnet xbdd project generate MSTest
-
Run the test and the test will pass...
dotnet test
-
Review the code to see how it works. If you have vscode installed...
code .