【发布时间】:2017-08-08 03:16:22
【问题描述】:
如何在 Visual Studio 中从课程或教程构建示例代码,并将其拆分为存储库中的文件夹?
所以 - 我几乎是 C# 的菜鸟,我已经阅读了很多教程并浏览了一些大型 C# 项目并构建了它们,还做了一些其他的小事。我正在学习在Pluralsight 上编写可测试代码的课程。他有一个用于代码示例的公共 Github 存储库,writing-testable-code。我连接到存储库并将其下载到本地 Git 存储库中。我能够从 NuGet 下载所有包,它们都显示为他使用的版本(一些有更新,但我认为更新可能会破坏事情)。
我不知道如何运行、构建或运行其中的测试。
到目前为止我尝试了什么
我的问题是 - 我打开了解决方案,并且有一堆文件和文件夹 - 每个模块/章节都分为文件夹(即 Module1/Easy、Module1/Hard、Module2/Easy 等)。 我想构建 Module1/Easy 文件夹,包括单元测试示例,并运行测试。
在查看 Module1/Easy 时,它有 3 个文件应该可以构建 - program.cs 有一个 main() 并且看起来像一个控制台应用程序,Calculator.cs 有一个简单的类,而 CalculatorTests.cs 有一个单元为 Nunit 构建的测试。该解决方案包含 NUnit、Castle.core 以及来自后续模块(Moq、AutoMoq、Unity、Ninject 等)的内容。它似乎没有 VS 运行器,所以我添加了 Nunit3TestAdapter - 课程中的那个人安装了 resharper,我没有,他正在使用 Resharper 测试运行器,这可以解释为什么他没有包括它.
我尝试将“Module1/Easy/Project.cs”文件设置为“设置为启动项”,因为它有一个主应用程序并且看起来设置为控制台应用程序。但是,运行它(“开始”按钮变成了“Program.cs”按钮),它无法运行 dll。测试没有像我从示例中构建的其他一些小项目一样显示在测试资源管理器中。
这样做的正确方法是什么?
我不知道从这里去哪里。在构建菜单上只有一个“构建解决方案”和一个关于代码分析的 - 我已经习惯了这里有更多的选项。感觉好像我必须把这个文件夹变成一个项目,也许吧?我总是可以重新安装软件包 - 但这里最好的解决方案是什么?
我之前在其他书籍、教程或课堂回购中遇到过这个问题,但最终决定弄清楚如何让这个工作。感谢您的帮助!
注意事项
- 我目前正在运行 Visual Studio Community 2017。
- 我可以发布一些文件,但 repo 是公开可用的,我不确定要发布什么来提供帮助。
来自 cmets 的进展和答案
- 根据 Biker-Dude 的回答,我将项目切换为构建控制台应用程序而不是 dll,现在由于具有多个入口点而出现编译时错误(即每个模块和子文件夹都有自己的 Main()功能,可能应该是一个单独的项目)。
- 在 #1 之后,我从解决方案中删除了除一个之外的所有文件夹,然后它将编译、运行测试等 - 但我最终希望能够至少单独编译每个子文件夹 - 最好的方法是什么?
【问题讨论】:
-
对于初学者的课程来说,这简直是令人困惑:一个项目有多个入口点,而同一个项目也用于测试?不好..
-
我认为他是在使用 repo 作为一次性转储所有代码示例的一种方式 - 问题是,我过去曾多次遇到过同样的问题。我通常只是浏览了 repo 中的代码,或者我自己已经有一个单独的项目/解决方案,所以我只是复制了某些东西。但我一直很烦恼,因为我不知道处理这种情况的正确方法。答案可能是只下载文件夹并构建一个单独的解决方案,并使用每个文件夹中的单独项目正确构建它。如果是这样,我可以接受!
标签: c# visual-studio msbuild solution