Skip to content
charlesbryant edited this page May 7, 2014 · 3 revisions

Intro

TestPipe is all about making test maintenance easier. So, TestPipe is opinionated. TestPipe is built around patterns and practices that make maintaining automated test suites easier. To make tests maintainable we had to remove some of the reasons for changing tests. So, we separated tests from the applications they test and also from the underlying framework(s) used to drive the tests.

There is no way that we could build such an opinionated framework and be a good fit for every environment and scenario. If you see something that can be improved, let us know or send us a pull request (see Contributing).

Writing Tests

To write tests we focused on using the BDD style of testing with Gherkin for defining the features and scenarios. So, built TestPipe with a strong dependency on SpecFlow. We won't go into the particulars of of SpecFlow, but it is an excellent tool for BDD style testing. To run tests, TestPipe can use any unit test framework that SpecFlow supports, but we haven't tested this so don't hold us to it. TestPipe out the box is configured to run on NUnit.

Running Tests

Seems like there have been wars fought about the best .NET unit test framework. We chose NUnit as the runner for TestPipe simply because of familiarity. In reality, you should be able to use any test runner supported by SpecFlow as TestPipe has no concrete integration with the test runner outside of SpecFlow.

Driving the Web Browser

TestPipe is built for testing web based applications so it needs a way to run tests in the browser. The default browser driver is Selenium WebDriver, but TestPipe is built with an abstract IBrowser interface so the browser can be driven with anything that implements this interface, even a class based on System.Net or WatiN. We provide the default TestPipe Selenium browser plug-in with the NuGet install of TestPipe.

Modeling the Application Under Test

To keep tests clean and maintainable, we advocate using the Page Object Model. TestPipe provides a base page object that can be used to build page objects to model your web application.

TestPipe in Action

If you want to experience it for yourself, you can view some test source code in the Demo project provided in the repository. If you want to take it for a spin, you can follow the Getting Started and create a class project and install the TestPipe NuGet package, modify a few config settings and go.

If you want to become a TestPipe Plumber, we are looking for contributors just like you and plumbers licenses are free. So, get involved, Contribute.

Visit our contributor blogs:

decoupledlogic.wordpress.com

Clone this wiki locally