Ossa.TestFramework.Templates
1.0.0-beta0001
See the version list below for details.
dotnet new install Ossa.TestFramework.Templates::1.0.0-beta0001
Ossa.TestFramework.Templates
Overview
The 'Ossa.TestFramework.Templates' Nuget package is a collection of templates designed to speed up the process of creating and deploying Visual studio projects/solutions. It utilises technologies such as .Net, C#, Entity Framework,SQL server, Azure devops, Terraform and testing frameworks such as Nunit, Playwright and Selenium
It benefits the developer by reducing time to wire up and configure every day essentials such as Logging, Dependency Injection, Configuration, Testing and Deployment.
For UI testing, it reduces issues such as updating browser drivers and provides a more stable and reliable testing framework.
It provides an abstraction for the developer to write Web based UI test that can be run with either Selenium or Playwright, without restricting the use of the frameworks native code. Not sure which framework best for you? No problem, you can start coding and switch over when you find and issues or limitations.
It provides a structured template for more complex terraform deployments and Azure Devops pipelines, allowing for a more consistent and reliable deployment process.
It provides an opinionated approach to provide consistency and best practices for the developer, but also allows for customisation and extension.
List of templates
ossa-prereq
Sets up the prerequisites/invoke-build/folder structure/build and setup powershell files for use with the other templates.
ossa-webapp-server
A simple web app template that can run as a windows service or a console app, and insludes logging, configuration, dependency injection.
ossa-database
A simple database template utilising Entity framework core that can be used to create a database and seed data and implement migrations/updates. It also provides a simple repository pattern for data access.
ossa-test-selenium
A web based UI test project using Selenium and Nunit, with some examples of using Ossa.TestFramework wrapper classes.
ossa-test-playwright
A web based UI test project using Playwright and Nunit, with some examples of using Ossa.TestFramework wrapper classes.
ossa-test-pipelines
A template for setting up a Azure Devops pipeline for a .Net project.
ossa-terraform
A template for setting up a terraform project for deploying infrastructure as code.
ossa-schema-drift
A template for detecting change in terraform state.
Getting started
We recommend initially starting from a blank solution and adding the templates as required, but you can add the templates to existing solutions. To install the Ossa.TestFramework.Templates Nuget package, follow these steps:
Open the NuGet Package Manager in Visual Studio. Search for "Ossa.TestFramework.Templates" in the package search bar. Select the package from the search results. Click on the "Install" button to add the package to your project. or alternatively use 'dotnet new install Ossa.TestFramework.Templates::<version>'
To list available templates, run the following command in a powershell window
or package manager:dotnet new --list ossa
To create a new project using the templates, follow these steps:
Open the command prompt or terminal.
Run the following command to create a new project using the desired template:
dotnet new ossa-webapp-server
dotnet new ossa-database
dotnet new ossa-test-selenium
dotnet new ossa-test-playwright
dotnet new ossa-test-pipelines
dotnet new ossa-terraform
dotnet new ossa-schema-drift
Replace the template name with the desired template name from the list above. Reloading or refreshing the solution should show the new project in the solution explorer.
Prerequisites
Depending on desired template you may require all or some of the following:
- Visual Studio 2022 or later
- .NET 8.0 or later
- Azure Devops account
- Terraform
- SQL Server
- Entity Framework Core
- Powershell 5.1 or later
Usage
The templates are designed to be used as a starting point for your project, and can be customised and extended as needed. Invoke build commands are pre-prepared to do a variety of tasks such as building, testing, deploying and cleaning up. These can be run by the developer or pipelines.
Some Typical commands are :
./build.ps1 generate
./build.ps1 generate-app
./build.ps1 generate-db
./build.ps1 generate-iac
./build.ps1 test-unit
./build.ps1 test-integration
./build.ps1 clean
More information is available in the ossa WIKI on how to use the templates and the Ossa packages.
Additional documentation
The package is based around the following Ossa packages:
Ossa.TestFramework.Core
Ossa.TestFramework.Playwright
Ossa.TestFramework.Selenium
The Ossa Utilities WIKI has more information and tutorials on the Ossa packages and how to use them:
The following resources can help you get started with the technologies used in the Ossa.TestFramework.Templates package:
- Nunit: https://docs.nunit.org/
- Invoke Build: https://github.com/nightroman/Invoke-Build/wiki
- Powershell: https://learn.microsoft.com/en-us/powershell/
- Playwright: https://playwright.dev/dotnet/docs/intro
- Selenium: https://www.selenium.dev/documentation/en/
- Azure Devops: https://docs.microsoft.com/en-us/azure/devops/?view=azure-devops
- Terraform: https://developer.hashicorp.com/terraform/tutorials
- Entity Framework:
- SQL Server: https://docs.microsoft.com/en-us/sql/sql-server/
-
net8.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
1.1.0-alpha0720 | 233 | 6/7/2024 | |
1.0.1 | 140 | 6/7/2024 | |
1.0.0-beta0001 | 90 | 6/7/2024 | |
0.4.0 | 107 | 6/7/2024 | |
0.4.0-alpha0054 | 110 | 6/7/2024 | |
0.4.0-alpha0049 | 114 | 6/7/2024 | |
0.4.0-alpha0048 | 112 | 6/7/2024 | |
0.4.0-alpha0041 | 122 | 6/7/2024 | |
0.4.0-alpha0039 | 95 | 6/6/2024 | |
0.4.0-alpha0038 | 109 | 6/6/2024 | |
0.4.0-alpha0037 | 103 | 6/6/2024 | |
0.4.0-alpha0025 | 106 | 6/6/2024 | |
0.4.0-alpha0017 | 110 | 6/6/2024 | |
0.4.0-alpha0016 | 113 | 6/6/2024 | |
0.4.0-alpha0014 | 127 | 6/5/2024 | |
0.4.0-alpha0012 | 108 | 6/5/2024 | |
0.4.0-alpha0010 | 121 | 6/5/2024 | |
0.4.0-alpha0007 | 111 | 6/5/2024 | |
0.4.0-alpha0006 | 128 | 6/5/2024 | |
0.4.0-alpha0004 | 122 | 6/5/2024 | |
0.4.0-alpha0003 | 138 | 6/5/2024 | |
0.4.0-alpha0002 | 111 | 6/5/2024 | |
0.4.0-alpha0001 | 143 | 6/5/2024 | |
0.2.0-alpha0705 | 109 | 6/4/2024 | |
0.2.0-alpha0701 | 88 | 6/3/2024 | |
0.2.0-alpha0696 | 96 | 6/3/2024 | |
0.2.0-alpha0692 | 103 | 6/3/2024 | |
0.2.0-alpha0690 | 86 | 6/3/2024 | |
0.2.0-alpha0688 | 90 | 6/3/2024 | |
0.2.0-alpha0670 | 100 | 6/3/2024 | |
0.2.0-alpha0668 | 93 | 6/2/2024 | |
0.2.0-alpha0662 | 92 | 5/30/2024 | |
0.2.0-alpha0651 | 108 | 5/29/2024 | |
0.2.0-alpha0650 | 117 | 5/29/2024 | |
0.2.0-alpha0641 | 120 | 5/29/2024 | |
0.2.0-alpha0639 | 128 | 5/29/2024 | |
0.2.0-alpha0634 | 120 | 5/28/2024 | |
0.2.0-alpha0622 | 117 | 5/28/2024 | |
0.2.0-alpha0617 | 133 | 5/24/2024 | |
0.2.0-alpha0608 | 113 | 5/23/2024 | |
0.2.0-alpha0602 | 126 | 5/23/2024 | |
0.2.0-alpha0598 | 121 | 5/23/2024 | |
0.2.0-alpha0596 | 105 | 5/22/2024 | |
0.2.0-alpha0593 | 142 | 5/22/2024 | |
0.2.0-alpha0583 | 110 | 5/22/2024 | |
0.2.0-alpha0581 | 121 | 5/22/2024 | |
0.2.0-alpha0576 | 119 | 5/21/2024 | |
0.2.0-alpha0575 | 120 | 5/21/2024 | |
0.2.0-alpha0563 | 121 | 5/21/2024 | |
0.2.0-alpha0561 | 119 | 5/21/2024 | |
0.2.0-alpha0548 | 123 | 5/20/2024 | |
0.2.0-alpha0547 | 108 | 5/20/2024 | |
0.2.0-alpha0539 | 116 | 5/17/2024 | |
0.2.0-alpha0501 | 101 | 5/10/2024 | |
0.2.0-alpha0433 | 108 | 5/2/2024 | |
0.2.0-alpha0408 | 114 | 4/28/2024 | |
0.2.0-alpha0401 | 145 | 4/22/2024 | |
0.2.0-alpha0399 | 154 | 4/19/2024 | |
0.2.0-alpha0398 | 136 | 4/18/2024 | |
0.2.0-alpha0396 | 119 | 4/18/2024 | |
0.2.0-alpha0395 | 111 | 4/18/2024 | |
0.2.0-alpha0352 | 123 | 4/18/2024 | |
0.2.0-alpha0350 | 127 | 4/18/2024 | |
0.2.0-alpha0349 | 136 | 4/17/2024 | |
0.2.0-alpha0347 | 183 | 4/16/2024 | |
0.2.0-alpha0346 | 172 | 4/12/2024 | |
0.2.0-alpha0345 | 189 | 4/12/2024 | |
0.2.0-alpha0339 | 186 | 4/12/2024 | |
0.2.0-alpha0337 | 155 | 4/11/2024 | |
0.2.0-alpha0335 | 197 | 4/11/2024 | |
0.2.0-alpha0333 | 165 | 4/10/2024 | |
0.2.0-alpha0309 | 166 | 4/10/2024 | |
0.2.0-alpha0307 | 169 | 4/4/2024 | |
0.2.0-alpha0305 | 171 | 4/3/2024 | |
0.2.0-alpha0303 | 176 | 4/2/2024 | |
0.2.0-alpha0294 | 157 | 4/1/2024 | |
0.2.0-alpha0293 | 177 | 3/28/2024 | |
0.2.0-alpha0292 | 197 | 3/28/2024 | |
0.2.0-alpha0291 | 189 | 3/27/2024 | |
0.2.0-alpha0290 | 193 | 3/27/2024 | |
0.2.0-alpha0283 | 197 | 3/26/2024 | |
0.2.0-alpha0273 | 181 | 3/24/2024 | |
0.2.0-alpha0271 | 195 | 3/24/2024 | |
0.2.0-alpha0264 | 201 | 3/24/2024 | |
0.2.0-alpha0260 | 171 | 3/24/2024 | |
0.2.0-alpha0234 | 206 | 3/21/2024 | |
0.2.0-alpha0218 | 202 | 3/20/2024 | |
0.2.0-alpha0217 | 185 | 3/19/2024 | |
0.2.0-alpha0212 | 146 | 3/19/2024 | |
0.2.0-alpha0204 | 194 | 3/18/2024 | |
0.2.0-alpha0202 | 214 | 3/18/2024 | |
0.2.0-alpha0127 | 158 | 3/17/2024 | |
0.2.0-alpha0114 | 202 | 3/7/2024 | |
0.2.0-alpha0110 | 196 | 2/29/2024 | |
0.2.0-alpha0108 | 195 | 2/28/2024 | |
0.2.0-alpha0105 | 197 | 2/28/2024 | |
0.2.0-alpha0099 | 188 | 2/28/2024 | |
0.2.0-alpha0096 | 189 | 2/28/2024 | |
0.2.0-alpha0094 | 191 | 2/28/2024 | |
0.2.0-alpha0078 | 150 | 2/27/2024 | |
0.2.0-alpha0076 | 149 | 2/27/2024 | |
0.2.0-alpha0074 | 156 | 2/26/2024 | |
0.2.0-alpha0071 | 150 | 2/23/2024 | |
0.2.0-alpha0069 | 172 | 2/23/2024 | |
0.2.0-alpha0064 | 147 | 2/19/2024 | |
0.2.0-alpha0061 | 160 | 2/18/2024 | |
0.2.0-alpha0056 | 171 | 2/14/2024 | |
0.2.0-alpha0049 | 158 | 2/13/2024 | |
0.2.0-alpha0048 | 396 | 8/2/2023 | |
0.2.0-alpha0047 | 234 | 7/28/2023 | |
0.2.0-alpha0046 | 269 | 7/27/2023 | |
0.2.0-alpha.45 | 109 | 7/19/2023 | |
0.2.0-alpha.44 | 105 | 7/7/2023 | |
0.1.0 | 311 | 7/7/2023 | |
0.1.0-beta.1-42 | 105 | 7/7/2023 | |
0.1.0-alpha.42 | 103 | 7/7/2023 | |
0.0.4-alpha.1 | 113 | 7/5/2023 | |
0.0.3 | 191 | 7/5/2023 | |
0.0.2 | 236 | 6/30/2023 | |
0.0.1 | 214 | 6/30/2023 |