AArnott / Library.Template

A template for a NuGet package with tests, stylecop, fxcop, versioning, and Azure Pipelines build ready to go.
MIT License
131 stars 26 forks source link

Use top-level test folder beside src folder for shipping projects #46

Closed AArnott closed 4 years ago

AArnott commented 4 years ago

BEFORE

doc
src
   Library
   Library.Tests
README.md

AFTER

doc
src
   Library
test
   Library.Tests
README.md

There are pros and cons to this, some of which are discussed in #26

This eliminates the deprecated .ruleset files in favor of .editorconfig files, which are in a hierarchy including unique files for src vs. test projects. Same for Directory.Build.props/targets: one for each of src and test.

This is a proposal. I might not merge this. Please use thumbs-up/down reactions on this PR description to vote.

AArnott commented 4 years ago

Thanks for the feedback again, @SteveBush. I considered putting the shipping and test projects under the src and test solution folders. The reason I didn't is because while that makes a lot of sense for a larger repo, it's just added folders to expand to get to the only two projects in the solution when the repo is new. I don't want the template repo to be so ready for a large repo that it never gets used because it doesn't appeal to someone looking for a small starter repo. And since it's super easy to drag the projects into their respective category folders in Solution Explorer when/if someone wants to start categorizing like that, it's not something a large repo has to "get right" from the start. Does that make sense?

SteveBush commented 4 years ago

Your reasoning makes total sense. However, I still think it's odd to see a mismatch between the Solution view of having a jut a src folder and the underlying folder structure of projects split between src and test. Again, this is just my opinion. I am just happy to have the changes. :)

I have created another issue, #47 to track a separate bug I found in confirming choco install when verifying these changes.

Steps Verified: Cloned templates in PureActive.Library.Test Expanded template Verified Solution contains a top level src folder Verified file system contains top level src and test folders with proper expanded files Configured codecoverage and CI feed Created new Azure product and pipeline Ran pipeline. Confirmed everything built property after fixing bug #47

Did not verify: Running GitHub workflow.