代码之家  ›  专栏  ›  技术社区  ›  Aaron Powell

用vs 2008测试内部类的奇问题单元

  •  1
  • Aaron Powell  · 技术社区  · 16 年前

    我正在启动一个项目,这个项目分为多个vs项目,我计划为每个项目都有单独的测试项目,所以我会有这样一个解决方案:

    • 项目1
    • 项目1.测试
    • 项目2
    • 项目2.测试

    有一些 internal 我想测试的课程。所以我使用visual studio 2008(sp1)在我的测试项目中生成测试存根,并添加 InternalsVisibleTo 是的。但我在内部课程下面有一条红色的曲线。如果我编译,我得到了一个成功的构建,看看测试方法,红色的曲线就消失了。

    但是,如果我强硬的文件,弯子回来,我没有智力上的内部类。

    这个 内部的 在project1中,测试在project1.test中。为了完整性,我决定以完全相同的方式生成测试方法,但是这次进入了项目2中。我没有红色的斜纹,我有智力,所有的东西。

    我试过删除project1.测试并重新创建测试方法,我能想到的一切,但无论我做什么,我都无法使内部 完全地 在成对的测试项目中可见,仅在 设计 为了另一个项目。

    它不工作真让我发疯!

    3 回复  |  直到 16 年前
        1
  •  2
  •   Kurt Schelfthout    16 年前

    您可以使用字符串常量,还是在内部Visualto属性中使用的字符串(不带级联)?我们习惯使用一个字符串常量来定义它,它对于除智能感知之外的一切都很好。替换为粘贴为一个简单的字符串,它可以工作。

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

        2
  •  1
  •   Marc Gravell    16 年前

    我也看到过,特别是在使用强名称时。老实说,我并没有感到兴奋;只要它编译和测试正确,我就可以忍受这种奇怪的故障。例如,如果你 构建问题,我看到它抱怨它找不到其他(内部)方法,但是一个干净的构建没有显示错误。再说一次,我不想被这件事打扰…(也许我太宽容了?).

    尤其是, 很少地 我需要在测试中使用内部类型/成员(大多数时候我将尝试通过公共API进行测试),因此缺少100%个可靠的智能感知通常不是一个大问题。我已经知道我要找的类型/成员(copy/paste;-p)。

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

        3
  •  0
  •   Asaf R    16 年前

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

    为此,请关闭解决方案并删除(全部?).ncb文件。为了安全起见,只需将它们重命名为.nc4之类的名称。重新打开解决方案并重新生成它。如果有用的话告诉我。

    编辑: 显然,ncb文件只用于c++项目。我不知道C项目的Intellisense数据库在哪里,也找不到。如果我是你,我还是会想办法重置数据库。

    阿萨夫