使用VS 2008对奇数问题单元测试内部类

时间:2009-02-22 07:38:10

标签: c# visual-studio-2008 unit-testing intellisense

我正在启动一个在多个VS项目中分解的项目,我正计划为每个项目分别进行测试项目,所以我有一个这样的解决方案:

  • PROJECT1
  • Project1.Test
  • Project2的
  • Project2.Test

我想测试一些internal个类。所以我使用Visual Studio 2008(SP1)在我的测试项目中生成测试存根,并添加了InternalsVisibleTo。但是我在内部课堂下得到一条红色的波浪线。如果我编译我得到一个成功的构建,并看着测试方法,红色的波浪线已经消失。

但是,如果我对文件进行强制操作,那么曲线会回来,而我内部课堂上没有智能感知。

internal在Project1中,测试在Project1.Test中。为了完整起见,我决定采用与生成测试方法完全相同的方式,但这一次进入Project2.Test,这次它显示完全正常。我没有得到红色的波浪,我得到智能,一切。

我尝试删除Project1.Test并重新创建测试方法,我能想到的一切,但无论我做什么,都无法让内部在其配对中完全可见测试项目,仅在设计的项目中用于另一个项目。

这是我的坚果,它不起作用!

3 个答案:

答案 0 :(得分:2)

你可以在InternalsVisibleTo属性中使用字符串常量或除了精确的文字搅拌(没有连接)之外的其他东西吗?我们习惯使用字符串常量来定义它,除了intellisense之外的所有内容都可以正常工作。通过粘贴替换为简单的字符串,它可以正常工作。

删除.suo文件(与解决方案文件相同的文件夹)也可能有所帮助。

答案 1 :(得分:1)

我也看过这个,特别是在使用强名时。说实话,我没有兴奋;只要它编译和测试正确,我就可以忍受奇怪的故障。例如,如果你遇到一个构建问题,我看到它抱怨它找不到其他(内部)方法 - 但是一个干净的构建没有显示任何错误。再说一次,我不要为此烦恼......(也许我太宽容了?)。

特别是,我只需很少我需要在测试中使用内部类型/成员(大多数时候我会尝试通过公共API进行测试);因此缺乏100%可靠的智能感知通常不是一个大问题。我已经知道我正在寻找的类型/成员(复制/粘贴;-p)。

当然,如果它被修复会很好,但如果我是预算经理,我可能会接受它,并首先关注其他功能。

答案 2 :(得分:0)

智能感知数据库文件可能存在问题。尝试删除它并让VS尝试重建数据库。

要执行此操作,请关闭解决方案并删除(所有?)。ncb文件。为了安全起见,只需将它们重命名为.nc4等等。重新打开解决方案并重建它。如果有效,请告诉我。

编辑:显然,ncb文件仅适用于C ++项目。我不知道C#项目的IntelliSense数据库在哪里,我也不知道。如果我是你,我仍然会尝试找到重置数据库的方法。

阿萨夫