Rog*_*son 5 visual-studio visual-studio-2017
我习惯了Eclipse for Java项目,该项目在保存文件时会自动生成。(我可以将其关闭。)
然后,我安装Infinitest,它会自动运行受保存更改影响的所有测试。
对于编写C#软件的Visual Studio,我该如何做?
如果您只关心 C#/.NET 代码并且只想运行单元测试,那么 Visual Studio 2017(仅限企业版)中已存在此功能称为 Live Unit Testing,请在此处阅读更多相关信息:https://docs .microsoft.com/en-us/visualstudio/test/live-unit-testing-intro?view=vs-2017
实时单元测试是 Visual Studio 2017 版本 15.3 中提供的一项技术,可在您进行代码更改时实时自动执行单元测试。
(我曾经是 Microsoft 的 SDE,负责 Visual Studio(2012、2013 和 2015)。我自己没有在构建管道上工作,但我希望我能提供一些见解:)
Visual Studio 如何自动构建和测试代码?
它没有,在我看来,它不应该,假设“构建和测试代码”是指它应该执行标准项目构建然后运行测试。
Eclipse 只构建受更改影响的部分。奇迹般有效。
即使是增量构建也不是即时的,尤其是在有重要的编译后活动(例如复杂的链接和优化(即使在调试模式下)、外部构建任务(例如嵌入资源、可执行压缩、代码签名等)的情况下)。
在 Eclipse 中,具体来说,这个特性并不完美。Eclipse 主要是一个 Java IDE,在 Java 项目中,很有可能非常快速地执行增量构建,因为无论如何 Java 的构建时间都非常快,而且增量构建就像.class在 Java 中交换嵌入文件一样简单.jar。在 Visual Studio 中,作为比较,.NET 程序集的构建时间也很快——但并不那么简单,因为输出 PE ( .exe/ .dll) 文件的重建并不那么简单。
但是在其他项目类型中,尤其是 C++,构建时间要长得多,因此 C/C++ 开发人员不适合使用此功能,实际上 Eclipse 自己的文档建议 C/C++ 用户关闭此功能:
默认情况下,Eclipse 工作台配置为自动构建项目。但是,对于 C/C++ 开发,您应该禁用此选项,否则您的整个项目将在例如您保存对 makefile 或源文件的更改时重建。单击 Project > Build Automatically 并确保 Build Automatically 菜单项旁边没有复选标记。
其他项目类型也不支持此功能,例如 Eclipse 的 Go 插件:
https://github.com/GoClipse/goclipse/releases/tag/v0.14.0
0.14.0 中的更改:
[...] 启用工作区“自动构建”设置并保存文件时,不再调用项目构建器。(这被认为是一个错误的功能)
(括号中的注释在 GoClipse 的更改列表中,并且明确说明了插件作者对自动构建的意见)
然后我安装 Infinitest,它会自动运行受保存的更改影响的所有测试。
Visual Studio 可以在构建后自动运行您的测试(但您仍然需要自己触发构建),这是一个内置功能,请参见此处:
https://docs.microsoft.com/en-us/visualstudio/test/run-unit-tests-with-test-explorer?view=vs-2017
要在每次本地构建后运行单元测试,请Test在标准菜单上选择,然后Run Tests After Build在测试资源管理器工具栏上选择。
至于我为什么 Visual Studio 不支持 Build-on-Save 的原因:
.java文件一对一地映射到输出.class文件,这使得增量构建非常快,因为只需要重新构建实际修改的文件,但其他项目如 C# 和C++ 没有这种奢侈:如果您对 C 预处理器宏或 C++ 模板进行哪怕是无关紧要的 1 字符编辑,您都需要重新编译使用该模板的所有其他内容 - 然后是链接器和优化器(如果代码内联) ) 都必须重新运行 - 不是一项快速的任务。C:\git\或C:\Users\me\Documents\Visual Studio Projects)它有该死的最好要直接许可,我这样做的每一次-尤其是当我想要做的最后生成输出的东西,而我工作的事。我不想首先将构建输出复制到安全目录。这也是为什么“清理项目”命令是独立的,而不是“构建项目”暗示的原因。TRUNCATE TABLE CriticalSystemParameters)并且构建中断(因为它们总是这样做),它可能会使您的系统处于不良状态。现在我承认有些项目类型确实构建得非常非常快,如 TypeScript、Java 和 C#,而其他项目类型的源文件根本不需要编译和链接,只需运行验证工具(如 PHP 或 JavaScript)——并且拥有Build-on-Save 可能对这些人有用——但可以说,对于少数人来说,它改善了它的体验,显然会使其他用户的体验变得更糟。
如果你真的想要在保存时构建,那么编写 Visual Studio 的扩展就足够了(挂钩“文件保存”命令,然后在你的处理程序中调用项目构建命令) - 或者养成按Ctrl+B之后的习惯Ctrl+S:)
| 归档时间: |
|
| 查看次数: |
2164 次 |
| 最近记录: |