A comprehensive curated list of C# test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on C#. Sponsored by http://sdclabs.com
Table of content:
- xUnit frameworks
- TDD \ ATTD \ BDD
- Code Analysis
- Web UI test automation
- Mobile test automation
- Windows UI test automation
- API automation
- Unix \ Linux UI test automation
- MacOS UI test automation
- Virtual environments
- Performance & stress & load
- Security checking
- Continuous Integration
- Reporting
- Documentation generation
- Editors, IDE and consoles
- Useful libs
- DataBase test automation
Also:
- NUnit ― The most known, extensible and portable(yes, you can run your tests on Mono for Linux and Mac) unit-testing framework in the .Net world. It comes with descent test adapters for Visual Studio 2013 - ... as well as standalone GUI and command line runners
- MSTest (Visual Studio Test) ― the most conservative and slow evolving unit testing framework with only one good thing: it is built-in to the Visual Studio. So, you can always rely it is there.
- xUnit ― the "bleeding edge" unit testing framework, beloved by many developers, even from Microsoft. This is community based open source project, written by the original inventor of NUnit 2.0
- Gallio Icarus and MbUnit ― the most feature reach Test Runner, Test Reporter and Unit testing framework. It is still popular in many .NET shops, especially for running Selenium WebDriver UI tests... Unfortunately, it is not being maintained since 2012. 💀
- Fluent Assertions is a set of .NET extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style test.
string actual = "ABCDEFGHI";
actual.Should().StartWith("AB").And.EndWith("HI").And.Contain("EF").And.HaveLength(9);
- SpecFlow ― A pragmatic BDD solution for .NET. It uses the Gherkin specification language and integrates to Visual Studio.
- SpecFlow.Selenium.Plugin ― SpecFlow plugin for Selenium instances generation over tags. Cucumber for dotnet
- BDDfy - The simplest BDD framework for .Net EVER! The name comes from the fact that it allows you to turn your tests into BDD behaviors simply.
- NCover ― really good code coverage tool, but $$
- OpenCover is a code coverage tool for .NET 2 and above, support for 32 and 64 processes with both branch and sequence points
- NCrunch - an automated concurrent testing tool for Visual Studio.
- See also: Code Coverage for C#/.NET
- Selenium WebDriver ― Yes! WebDriver is everywhere! This is the best and the most popular UI test automation library and infrastructure.
- Atata ― An open source C#/.NET test automation full featured framework based on Selenium WebDriver. It uses fluent page object pattern with built-in logging. Atata Framework is extensible and contains a set of components, triggers and much more.
- Coded UI ($$$) (Internet Explorer only) ― Okay... it is integrated into the Visual Studio Premium+ and supports Record&Playback "automation".
- WatiN ― Before the Selenium Webdriver appeared on the market, WatiN was one of the best Web UI automation frameworks for .NET. Now it is not maintained. 💀
- Golem Object Oriented C# Automated Testing Framework. Golem was created to simplify the process of creating enterprise-scale automated testing suites. It wraps around Gallio/MbUnit and a number of automation tools (such as Selenium-WebDriver) to provide the tester with a simple process for creating automated tests no matter what the tool. The inclusion of advanced features, diagnostic information, easy configuration, and enhanced API's helps Golem make automating in code-based automation tools much more practical. A standard test structure is enforced throughout the Golem framework to make the code readable and easy to reuse. Company behind it (ProtoTest) is in the process of winding down. Last commit was done in May, 2015.
- Mailosaur - .NET client for email testing/automation via Mailosaur.
- Ocaramba - Cross-Platform C# framework to automate tests using Selenium WebDriver. Ocaramba.templates Ocaramba project extension for Visual Studio - a set of project and class templates for web automated testing using Ocaramba Framework.
- Coded UI supports some level of the mobile test automation for Windows Phone
- Xamarin.UITest is a library that comes with Xamarin Forms and allows you to automate the applications built with Xamarin technology on Windows Phone, iOS and Android
- Appium supports cross platform test automation for Native and Hybrid mobile applications
- Testura.Android A lightweight test automation framework to test android applications. Easy to start and require minimum set up.
- Winium.Cruciatus is an open source C# Framework for automated testing of Windows application based on WinForms and WPF platforms.
- Teststack White is one of the most popular and stable open source UI test automation library for Windows (WinAPI / WPF / Silverlight / Windows Forms).
- Coded UI ($$$) does a pretty good job for Windows UI automation. Pricey... because it comes with Visual Studio Premium and Ultimate.
- Cutie - CUITe (Coded UI Test enhanced) Framework is a thin layer developed on top of Microsoft Visual Studio Team Test's Coded UI
- AutoIt (COM bindings) ― since it implements COM+ interface, autoit can be available from any language on windows, including C#.
- WebAii Testing Framework - Framework for cross-browser testing with native support for Telerik UI for ASP.NET AJAX, Silverlight, WPF, HTML5 and XAML applications, etc.
- FlaUI - UI automation library for .Net. Rewritten White with UIA3, UIA2, MSAA support
- Windows Application Driver - Windows Application Driver is a service to support UI Test Automation of Windows Applications. The service design subscribes to the Mobile JSON Wire Protocol standard.
- ApprovalTests - an open source assertion/verification library to aid unit testing. It is compatible with most .Net unit testing frameworks (Nunit, MsTest, xUnit, MBUnit)
-
Jenkins ― can be easily configured to support C# continuous integration process:
- Use NUnit as your test runner with Jenkins NUnit Plugin
- Use Microsoft Build Tools to build the project without Visual Studio
- Use Windows Batch files and / or Powershell to perform any system configuration tasks
- Use
msdeploy
from Web Deploy Toolkit in order to perform the remote deployment and configuration tasks.
-
TeamCity is a free and simple Build and Continuous integration server. You can run the C# tests just out of the box
-
[Team Foundation Server] ― well... the marketing guys say that it can also build something for you
-
Appveyor is free for open source projects and easy to use.
- Allure - An open-source reporting library for test automation (NUnit 2 and MSTest adapters).
- Allure SpecFlow - Allure SpecFlow Plugin
- Allure NUnit - Allure NUnit plugin
- ReportPortal - Full-featured result management tool for clients, managers & test automation engineers (NUnit 2, Nunit 3 and SpecFlow adapters).
- ExtentReports - An open-source reporting library for test automation.
- GHPReporter - An open-source .NET test reporting tool for several testing frameworks (supports NUnit 3, MSTest and SpecFlow).
- Doxygen is a free and open source documentation generation platform, that supports multiple languages. You may write a standard C# XML documentation ― and Doxygen will process it correctly; Yo may use markdown and include images ― Doxygen can handle even more. Grab and modify this Doxyfile for C#
- Wyam Static site generator with built-in capability to generate API documentation from .NET library metadata and XML documentation.
- Free Visual Studio Community Edition ― starting from VS2013, Visual Studio Professional is became free for small teams.
- Sharpdevelop is a free and open source IDE for C#
- Visual Studio Code is a free and cross-platform IDE
- Json.NET is a popular high-performance JSON framework for .NET
- RestSharp ― simple REST and HTTP API Client
- XMLUnit - testing and comparing XML output for Java and .NET
- DBTestCompareGenerator - Tool for generating database tests that can be run with DBTestCompare.
- NBi - NBi is a testing framework (add-on to NUnit) for Business Intelligence. It supports most of the relational databases (SQL server, MySQL, postgreSQL ...) and OLAP platforms (Analysis Services, Mondrian ...) but also ETL and reporting components (Microsoft technologies).
Where to discover new libraries, information, tools, etc.
- automated-testing.info - Test automation community
- atinfo.github.io/at.info-knowledge-base - Knowledge base for test automation examples on different tools and technologies
- python test automation
- java test automation
- ruby test automation
- c# test automation
- php test automation
- javascript test automation
- kotlin test automation
- test automation and software testing as services
- mobile, tablet and tv test automation
- general purpose test automation tools
Also we are supporting and looking for contribution for project:
Your contributions are always welcome!