奇怪的问题单元测试内部类与VS 2008


1

我开始一个项目,分解了多个VS项目,我打算为每个项目分开测试项目,所以我会有这样的解决方案:

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

有一些internal我想要测试的类。因此,我使用Visual Studio 2008(SP1)在我的测试项目中生成测试存根,并添加了InternalsVisibleTo。但是我在内部课堂上得到了一条红色的波浪线。如果我编译成功,我们就可以看到测试方法,红色的波浪消失了。

但是,如果我强硬的文件的squ come回来,我没有intellisense内部类。

internal在Project1中,测试在Project1.Test中。为了完整起见,我决定采用完全相同的方式来生成测试方法,但这次进入Project2.Test,并且这一次显示它完全正常工作。我不会得到红色的曲线,我会感受到智能,一切。

我已经尝试删除Project1.Test并重新创建测试方法,我能想到的所有内容,但不管我做什么我都无法在内部完成在其配对的测试项目中可见在其中一个是设计为另一个项目。

这是在做我的坚果,它不工作!

  0

是VS2008 SP1吗? 22 2月. 092009-02-22 07:49:47

  0

是的,更新后显示 22 2月. 092009-02-22 09:28:44

  0

您是否安装了resharper?或任何其他可以改变语法高亮的插件? 25 2月. 092009-02-25 13:14:54

  0

没有,没有加载项 26 2月. 092009-02-26 00:32:22

0

这可能是IntelliSense DB文件的问题。尝试删除它并让VS尝试重建数据库。

为此,请关闭解决方案并删除(all?).ncb文件。为了安全起见,只需将它们重命名为诸如.nc4之类的内容即可。重新打开解决方案并重建它。让我知道它是否有效。

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

Asaf

  0

对于C#,foo.dll的智能感知在foo.xml文件中生成(如果启用);然而,解决方案中的项目引用不会使用它 - 他们可以直接访问元数据。 22 2月. 092009-02-22 08:50:54


1

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

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

当然,如果它是固定的,它会很好,但如果我是预算管理者,我可能会与之共存,并首先关注其他功能。

  0

是的,它不是一个休的问题,但它很烦人,当你错过类型的成员cuz intellisense死亡! 22 2月. 092009-02-22 09:30:20


2

你可以在你的InternalsVisibleTo属性中使用一个字符串常量或除了精确的文字stirng(不连接)之外的东西吗?我们习惯使用字符串常量来定义它,对于除intellisense之外的所有内容都适用。通过粘贴替换为一个简单的字符串,它的工作原理。

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

  0

使用一个确切的字符串为我解决它。 14 7月. 102010-07-14 01:03:28