@@ -11,28 +11,52 @@ applications packaged as [.NET Tools][dotnet-tools].
1111
1212``` text
1313DotnetToolWrapper/
14+ ├── .config/
15+ │ └── dotnet-tools.json # .NET tools configuration (sbom-tool, spdx-tool)
1416├── .github/
17+ │ ├── ISSUE_TEMPLATE/ # GitHub issue templates
18+ │ │ ├── bug_report.yml
19+ │ │ ├── feature_request.yml
20+ │ │ └── config.yml
21+ │ ├── dependabot.yml # Dependabot configuration
1522│ └── workflows/ # GitHub Actions workflows
1623│ ├── build.yaml # Reusable build workflow
1724│ ├── build_on_push.yaml # Triggered on push events
1825│ └── release.yaml # Release workflow
26+ ├── docs/
27+ │ └── usage.md # Detailed usage documentation
1928├── src/
2029│ └── DemaConsulting.DotnetToolWrapper/
2130│ ├── Program.cs # Main application logic
2231│ └── DemaConsulting.DotnetToolWrapper.csproj
32+ ├── test/
33+ │ └── DemaConsulting.DotnetToolWrapper.Tests/
34+ │ ├── IntegrationTests.cs
35+ │ ├── ProgramTests.cs
36+ │ ├── Runner.cs
37+ │ └── DemaConsulting.DotnetToolWrapper.Tests.csproj
2338├── .cspell.json # Spelling check configuration
39+ ├── .gitignore # Git ignore patterns
2440├── .markdownlint.json # Markdown linting configuration
25- ├── README.md # Project documentation
41+ ├── AGENTS.md # This file - Agent instructions
42+ ├── ARCHITECTURE.md # Architecture documentation
43+ ├── CODE_OF_CONDUCT.md # Community code of conduct
44+ ├── CONTRIBUTING.md # Contribution guidelines
45+ ├── DemaConsulting.DotnetToolWrapper.sln
2646├── LICENSE # MIT License
47+ ├── README.md # Project documentation
48+ ├── SECURITY.md # Security policy
2749└── spdx-workflow.yaml # SBOM enhancement workflow
2850```
2951
3052## Key Technologies
3153
3254- ** .NET 8.0, 9.0, 10.0** : Multi-targeted framework versions
3355- ** C# 12** : Programming language
56+ - ** MSTest** : Testing framework
3457- ** GitHub Actions** : CI/CD automation
35- - ** SBOM Tools** : Software Bill of Materials generation
58+ - ** SBOM Tools** : Software Bill of Materials generation (sbom-tool, spdx-tool)
59+ - ** Code Analyzers** : Microsoft.CodeAnalysis.NetAnalyzers 10.0.101, SonarAnalyzer.CSharp 10.17.0.131074
3660
3761## Development Guidelines
3862
@@ -43,6 +67,22 @@ dotnet restore
4367dotnet build --configuration Release
4468```
4569
70+ ### Testing the Project
71+
72+ ``` bash
73+ # Run all tests
74+ dotnet test --configuration Release
75+
76+ # Run tests with detailed output
77+ dotnet test --configuration Release --logger " console;verbosity=detailed"
78+ ```
79+
80+ The test project uses MSTest and includes:
81+
82+ - ** Unit Tests** : ` ProgramTests.cs ` - Tests for core program logic
83+ - ** Integration Tests** : ` IntegrationTests.cs ` - End-to-end tests with actual execution
84+ - ** Test Runner** : ` Runner.cs ` - Helper for running the tool in tests
85+
4686### Code Standards
4787
4888- ** Language Version** : C# 12
@@ -72,6 +112,11 @@ Quality checks are automated through GitHub Actions:
721121 . ** Multi-targeting** : Always ensure changes are compatible with .NET 8.0, 9.0, and 10.0
731132 . ** Cross-platform** : The tool must work on Windows, Linux, FreeBSD, and macOS
741143 . ** Architecture Support** : Support x86, x64, ARM, ARM64, WASM, and S390x architectures
115+ 4 . ** Testing** : Always run tests after making changes. The CI runs tests on ubuntu-latest,
116+ windows-latest, and macos-latest
117+ 5 . ** Code Quality** : Maintain ` TreatWarningsAsErrors ` - all warnings must be fixed
118+ 6 . ** Analyzers** : Keep analyzer packages (Microsoft.CodeAnalysis.NetAnalyzers and
119+ SonarAnalyzer.CSharp) at the same version across all projects
75120
76121### When Modifying Workflows
77122
@@ -98,7 +143,9 @@ Quality checks are automated through GitHub Actions:
98143
99144### Adding New Dependencies
100145
101- Update the ` .csproj ` file in ` src/DemaConsulting.DotnetToolWrapper/ `
146+ 1 . Update the ` .csproj ` file in ` src/DemaConsulting.DotnetToolWrapper/ `
147+ 2 . If adding analyzer packages, ensure test project also gets the same version
148+ 3 . Dependabot is configured to automatically update NuGet packages in the ` nuget-dependencies ` group
102149
103150### Modifying Build Output
104151
@@ -115,8 +162,17 @@ Edit the "Create Drop Folder" step in `.github/workflows/build.yaml`
115162Before committing:
116163
1171641 . Build locally: ` dotnet build --configuration Release `
118- 2 . Run spelling checks: ` npx cspell "**/*.md" `
119- 3 . Run markdown linting: ` npx markdownlint "**/*.md" `
165+ 2 . Run tests: ` dotnet test --configuration Release `
166+ 3 . Run spelling checks: ` npx cspell "**/*.md" `
167+ 4 . Run markdown linting: ` npx markdownlint "**/*.md" `
168+
169+ ## Issue Templates
170+
171+ The repository includes structured issue templates:
172+
173+ - ** Bug Report** (` .github/ISSUE_TEMPLATE/bug_report.yml ` ) - For reporting bugs with system information
174+ - ** Feature Request** (` .github/ISSUE_TEMPLATE/feature_request.yml ` ) - For suggesting new features
175+ - ** Config** (` .github/ISSUE_TEMPLATE/config.yml ` ) - Links to discussions and other resources
120176
121177## Related Documentation
122178
@@ -125,6 +181,7 @@ Before committing:
125181- [ CONTRIBUTING.md] ( CONTRIBUTING.md ) - Contribution guidelines and development setup
126182- [ CODE_OF_CONDUCT.md] ( CODE_OF_CONDUCT.md ) - Community code of conduct
127183- [ SECURITY.md] ( SECURITY.md ) - Security policy and vulnerability reporting
184+ - [ docs/usage.md] ( docs/usage.md ) - Comprehensive usage guide with examples
128185- [ LICENSE] ( LICENSE ) - MIT License terms
129186
130187## Contact
0 commit comments