2009-12-02 116 views
0

我使用的是VS 2008 Developer Edition,并发现测试项目存在一些错误。VS2008单元测试项目错误

我得到一个没有道理的错误 - 我有一个名为'Foo'的类,我需要测试并自动创建空白测试类。

Foo在构造函数中需要3个参数 - IBar,IBaz,IBang。当我编写一个测试用例时,我将Dim foo作为New Foo(bar,baz,bang),并且我有时会得到一个错误,说='类型IBang不能隐式转换为IBang'。这个错误没有任何意义。

更奇怪 - 如果我切换到Foo_Accessor()的实例,那么错误就会消失。我已经玩过引用,然后我可以最终修复上述错误 - 但是,然后对于我的Foo_Accessor()类,我得到了同样的错误!

我清理,重建,有时错误将消失 - 但后来我得到错误'Foo_Accessor'未定义。现在我去Foo类,再次'创建访问器' - 同样,它仍然会给出相同的错误。所以在这一点上,我被卡住了,我的解决方案将无法编译,我做的唯一事情就是通过visual studio添加一个新的测试用例!

有没有人看到这些问题,可以请帮助?

另外 - 我已经尝试了一切,包括来自MS的指令,例如 - 重命名类型,重新引用项目/以不同的方式,卸载项目等等等等。仍然结束了'ifoo不能转换为ifoo'错误或Foo_Accessor未定义错误...我即将分解并给予该诅咒的属性,我必须检查ReadOnly存取器...!

回答

1

确实很难说,但它听起来像你有一个问题,你的引用被设置不正确。这里可能发生的情况是你的项目之间的引用之一被设置为DLL引用与项目引用。这可能会混淆类型系统,认为来自项目的Bang和来自DLL的Bang实际上是不同的类型。

我会删除我的项目之间的所有引用。然后再将所有这些添加回来,小心地从添加引用对话框的项目选项卡中选择项目与浏览项目。这应该可以解决你的问题。

这是一个多语言项目或只是一个单一的语言项目?我发现这种类型的问题更有可能发生在多语言项目中,但它确实发生在单一语言中。