我习惯了Eclipse for Java项目,该项目在保存文件时会自动生成。 (我可以将其关闭。)
然后我安装Infinitest,它会自动运行受保存的更改影响的所有测试。
我该如何在Visual Studio中编写C#软件呢?
答案 0 :(得分:4)
VS 2017 Enterprise Edition支持Live Unit Testing功能。对于较旧的版本或较低的版本,可以使用一些Mighty Moose或NCrunch之类的第三方提供商(几乎肯定也存在其他第三方解决方案)
答案 1 :(得分:3)
如果您只关心C#/。NET代码,并且只想运行单元测试,那么此功能在Visual Studio 2017(仅企业版)中已经存在,称为实时单元测试,请在此处详细了解:{{ 3}}
实时单元测试是Visual Studio 2017 15.3版中提供的一项技术,可在更改代码时自动实时地自动执行单元测试。
(我曾经在Microsoft担任Visual Studio的SDE(2012、2013和2015)。我自己没有参与构建管道的工作,但希望我能提供一些见解:)
Visual Studio如何自动构建和测试代码?
不是,并且我认为不应该,假设“构建并测试代码”意味着您应该执行标准的项目构建,然后运行测试。
>Eclipse仅构建受更改影响的内容。就像魅力一样。
即使增量编译也不是即时的,尤其是在有大量的编译后活动(例如,复杂的链接和优化(即使在调试模式下),外部编译任务(例如,嵌入资源,可执行压缩,代码签名等)的情况下。 / p>
特别是在Eclipse中,此功能并不完美。 Eclipse主要是Java IDE,在Java项目中,很有可能快速执行增量构建,因为Java的构建时间非常快,增量构建就像交换嵌入式{{1 }}文件放在Java .class
中。为了进行比较,在Visual Studio中,.NET程序集的构建时间也很快-但不那么简单,因为输出PE(.jar
/ .exe
)文件的构建并不那么简单。
但是,在其他项目类型中,尤其是C ++,构建时间要长得多,因此对于C / C ++开发人员来说,具有此功能是不合适的,事实上Eclipse自己的文档建议C / C ++用户关闭此功能:
https://docs.microsoft.com/en-us/visualstudio/test/live-unit-testing-intro?view=vs-2017
默认情况下,Eclipse工作台被配置为自动构建项目。但是,对于C / C ++开发,您应禁用此选项,否则,无论何时将更改保存到makefile或源文件中,都将重建整个项目。单击“项目”>“自动生成”,并确保“自动生成”菜单项旁边没有选中标记。
其他项目类型也不支持此功能,例如Eclipse的Go插件:
0.14.0中的更改:
[...] 启用工作区“自动构建”设置并保存文件时,不再调用项目构建器。 (无论如何,这被认为是不适当的功能)
(该括号内的注释在GoClipse的更改列表中,并且肯定明确了插件作者对“自动构建”的看法)
然后我安装Infinitest,它会自动运行受保存的更改影响的所有测试。
Visual Studio可以在构建后自动运行测试(但是您仍然需要自己触发构建),这是一项内置功能,请参见此处:
https://github.com/GoClipse/goclipse/releases/tag/v0.14.0
要在每次本地构建后运行单元测试,请在标准菜单上选择 Test ,然后在“测试资源管理器”工具栏上选择在构建之后运行测试。
由于我的原因,Visual Studio不支持“保存时构建”:
.dll
文件一对一映射到输出.java
文件,这使得增量构建非常快,因为只有实际修改的文件需要重建,但是C#和C ++之类的其他项目却没有这么奢侈:如果您甚至对C预处理宏或C ++模板进行了无关紧要的1个字符的编辑,您都需要重新编译使用该模板的所有其他内容-并且那么链接器和优化器(如果是代码内联的话)都必须重新运行-这不是一项快速的任务。.class
或C:\git\
),该死的最好还是向 me 征求直接许可,每次-尤其是当我在做某事时想对最后的构建输出做某事时。我不想先将构建输出复制到安全目录。这也是为什么“清洁项目”命令是单独的,而不是“构建项目”所隐含的原因。C:\Users\me\Documents\Visual Studio Projects
)并且构建中断(因为它们总是这样做),则可能会使您的系统陷入困境状态。现在,我承认某些项目类型确实可以非常快速地生成,例如TypeScript,Java和C#,而其他项目类型的源文件根本不需要编译和链接,而只需运行验证工具(例如PHP或JavaScript) -并且拥有“保存时生成”功能对这些人可能有用-但可以说,对于数量有限的用户而言,其体验会得到改善,对于其他用户来说显然会恶化。
如果您真的想要保存时构建,那么将其编写为Visual Studio扩展很简单(钩住“ File Save”命令,然后在处理程序中调用Project Build命令)-或养成习惯 Ctrl + S 之后按 Ctrl + B 的内容:)