C++ 小型单元测试

C++ 小型单元测试,c++,c,linux,unit-testing,visual-c++,C++,C,Linux,Unit Testing,Visual C++,当我进行小单元测试(从我的库中调用我的函数的小exe,或者调用一段嵌入main()之前的代码)时,Linux中的速度似乎比msvc快50倍: 1) 在Linux中: vi test1.c;剪切和粘贴包括。 剪切和pase代码。添加int main(int argc,char**argv){declare_数据; 调用我的函数();}:wq!cc test1.c &&/a.完成每一步 秒。如果不是,则帮助器脚本将生成 只需要几秒钟 2) 在msvc中: 创建控制台项目。直到项目 创建完成了,它已经

当我进行小单元测试(从我的库中调用我的函数的小exe,或者调用一段嵌入main()之前的代码)时,Linux中的速度似乎比msvc快50倍:

1) 在Linux中:

vi test1.c;剪切和粘贴包括。 剪切和pase代码。添加int main(int argc,char**argv){declare_数据; 调用我的函数();}:wq!cc test1.c &&/a.完成每一步 秒。如果不是,则帮助器脚本将生成 只需要几秒钟

2) 在msvc中:

创建控制台项目。直到项目 创建完成了,它已经完成了 比全部时间多(1)。粘贴代码。 摆弄项目设置。尝试 通过argv。尝试传递不同的argv

看起来一切都比Linux慢10倍


根据您的经验,在msvc中创建和完成小型单元测试的速度有多快(几秒钟?

没有什么可以阻止您从命令行编译和运行msvc代码。实际的编译器是一个命令行工具,因此如果IDE妨碍了您,只需绕过它。你甚至可以找到一个Vi的Windows端口,你的工作流程与Linux上的工作流程几乎完全相同

但是如果您选择使用一个设计用于处理大型代码库的重载IDE,那么肯定会有相当大的开销


除非你写了一个MSVC插件,让它更快更容易地完成这些事情。(如果您这样做,请将其公开,因为我们很多人都会发现它很有用。)

没有任何东西可以阻止您从命令行编译和运行MSVC代码。实际的编译器是一个命令行工具,因此如果IDE妨碍了您,只需绕过它。你甚至可以找到一个Vi的Windows端口,你的工作流程与Linux上的工作流程几乎完全相同

但是如果您选择使用一个设计用于处理大型代码库的重载IDE,那么肯定会有相当大的开销


除非你写了一个MSVC插件,让它更快更容易地完成这些事情。(如果你这样做,请公开,因为我们中的很多人会发现它有用。)

< p>如果你只使用VisualC++来构建你的测试,你可以用它。P> > P>如果您只使用VisualC++来构建测试,则可以使用。p> 这看起来像是你在寻找一个VC++解决方案,但对于遇到这个问题的其他人来说,Visual Studio的临时项目功能。只有某些项目模板支持这一点,而不是我能找到的任何C++。您可以创建自己的模板吗?有关配置临时项目的更多信息,请参见,它在2005年至2010年的Visual Studio中提供。

它看起来像是您在寻找VC++解决方案,但对于遇到此问题的其他人来说,Visual Studio具有临时项目功能。只有某些项目模板支持这一点,而不是我能找到的任何C++。您可以创建自己的模板吗?有关配置临时项目的更多信息,请参阅2005至2010个Visual Studio。

您忘记了精通 VI/C> >的二十年:-您真的想用VisualC++来测试/使用您的库吗?或者只是在Windows平台上测试你的库?MSVC描述的中间部分似乎是主观的(还有flamebait,待定)。如果您想对苹果进行比较,那么我们是否可以假设您知道这两种情况下的相对文件路径,或者两者都不知道?如果你精通一种工具,而不擅长另一种,那么你猜怎么着,第一种工具总是更有效。我很想因此而否决你的问题,这是一种耻辱,因为实际的问题是一个好问题。@jalf。好的,删除了关于cwd的部分。虽然这是事实:在Linux中,我选择cwd。在MSVC中,它选择了CWD,而不是I.OZAIR:CygWin/GCC,你有什么建议,你忘记了精通<代码> vi >代码>:-你真的想用Visual C++测试/使用你的库,或者只是在Windows平台上测试你的库?你的MSVC描述的中间部分似乎是主观的(FielBaIT,TBH)。如果您想对苹果进行比较,那么我们是否可以假设您知道这两种情况下的相对文件路径,或者两者都不知道?如果你精通一种工具,而不擅长另一种,那么你猜怎么着,第一种工具总是更有效。我很想因此而否决你的问题,这是一种耻辱,因为实际的问题是一个好问题。@jalf。好的,删除了关于cwd的部分。虽然这是事实:在Linux中,我选择cwd。在msvc中,它选择cwd,而不是I。@Ozair:你有什么建议,cygwin/gcc?此外,请看一下msbuild以及它如何处理新的vcxproj文件。您可以使用它从命令行生成.vcxproj和.sln文件,还可以轻松地为测试添加新的.vcxproj。此外,请查看msbuild以及它如何处理新的vcxproj文件。您可以使用它从命令行构建.vcxPROJ和.sLn文件,或者很容易为测试添加一个新的.vcxPROJ。C++和.NET项目使用完全不同的基础结构。没有C++项目模板之类的东西。VC++使用一个15年的基于COM/JavaScript的怪物来生成项目文件,因此创建自己的模板将涉及相当多的工作。没有C++项目模板之类的东西。VC++使用一个有15年历史的基于COM/Javascript的怪物来生成项目文件,因此创建自己的模板需要做很多工作。