Tack is a powerful DotNet command-line tool designed to filter projects and associated output assemblies from solutions. It streamlines the process of managing test assemblies in your CI/CD pipeline, enabling seamless test execution from local checkouts using standard CI build tools.
- Filter and manage projects within .NET solutions
- Extract and filter test assemblies based on configurable criteria
- Support for framework-specific filtering
- Configurable assembly exclusion
- Compatible with popular test runners like VsTestRunner
- Flexible output configuration (Release/Debug)
- .NET 7 SDK
Tack can be installed as a DotNet command-line tool using:
dotnet tool install --global Tack
To build the solution:
dotnet build Tack.sln
To build and run the associated tests:
build.cmd
The main functionality of Tack is to extract test assemblies from your solution. Use the following command:
tack get-test-assemblies [--framework framework-regex] [--exclude-assemblies {list of assemblies}] [--configuration Release|Debug] --outfile {test-list}
--framework
: (Optional) Regex pattern to filter frameworks--exclude-assemblies
: (Optional) List of assemblies to exclude--configuration
: (Optional) Build configuration (Release or Debug)--outfile
: (Required) Output file path for the test assembly list
The generated test assembly list can be used with test runners like VsTestRunner for local test execution.
We welcome contributions from the community! Please see our CONTRIBUTING.md for guidelines on how to:
- Submit bug reports and feature requests
- Set up your development environment
- Submit pull requests
- Follow our coding standards
This project uses NerdBank.GitVersioning for version management.
For information about reporting security vulnerabilities, please refer to our security policy.
If you encounter any issues or have questions:
- Check the existing GitHub Issues
- Create a new issue if your problem hasn't been reported
- Provide as much detail as possible, including version numbers and reproduction steps
This project is licensed under the Apache 2.0 license. See the LICENSE file for details.