2009-09-08 57 views
2

我们有一个庞大的代码库,包含大约1000k行本机/非托管遗留C++代码,我们将为代码提供单元测试,MSTest将完全适合我们当前的开发环境(TFS,VS 2010,...)。我知道MSTest原本是为了测试托管代码,但它也可能为非托管sc编写单元测试。对于大型遗留代码库MSTest

对于非托管代码,MSTest的使用有任何(后期)缺陷吗?有没有人有这方面的经验?

第二种意见是使用Google.Test,但我必须编写一个Visual Studio插件来将gtest框架集成到我们的环境中。

在此先感谢!

+0

毕竟我们决定放弃MSTest,现在我们使用GoogleTest作为单元测试框架。原因是需要花费太多时间和精力才能在/ CLR下编译我们的代码库:pure – lakai 2009-09-18 08:46:09

回答

2

我不会推荐MSTest进行托管测试。请参阅here了解我的经验。但是,如果你坚持我会说一个很好的方法来测试你的遗留代码将使用PInvoke interop到您的c + +代码。

+0

您对Visual Studio如何增强测试非托管代码的过程有任何经验吗?我在博客中读过一次,应该用新的VS版本 – lakai 2009-09-08 09:04:12

+0

来改进。不,我不后悔。 – 2009-09-08 09:06:22

0

我使用Boost.Test框架在Visual Studio中测试我的C++代码时没有任何问题。您需要创建一个包含您的主项目可以依赖的测试的测试项目(控制台模式EXE)。使用Visual Studio'post build'步骤,您可以自动运行测试。

+0

感谢您的评论。测试自动化只是我们“必须具备的”之一,而且测试框架应该直接集成到VS中,例如,用户应该能够选择他/她想要运行的测试,或者应该提供有用的信息,如代码覆盖等。 – lakai 2009-09-08 10:56:34

1

反正我会推荐googletest我认为他们也会很乐意接受你的VS集成,并将它包含在下一个版本中,前提是该补丁具有合理的质量。

哦,你可以使用另一个伟大的Google项目,然后gmock