首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeMock 6.0.4.0在不同的机器上表现不同

TypeMock 6.0.4.0在不同的机器上表现不同
EN

Stack Overflow用户
提问于 2011-12-07 00:46:04
回答 3查看 400关注 0票数 0

帮助!

这段代码在我使用TypeMock的本地VS2010上运行得很好,但是在我们的构建服务器上运行NCover时却失败了。

我的代码:

代码语言:javascript
复制
 using (RecordExpectations expect = RecorderManager.StartRecording())
    {
74:             RequestDataLayer.GetAllUsers();
75:             expect.Return(DatabaseUsers);
                // other definitions to follow
    }

在CruiseControl.Net环境中产生以下错误:

代码语言:javascript
复制
Execute
TypeMock.TypeMockException: 
*** Cannot use Return in this sequence, there must be a mocked statement first
Perhaps you are trying to mock a method from mscorlib
   at TypeMock.RecordExpectations.b(String A_0)
   at TypeMock.RecordExpectations.a(String A_0)
   at TypeMock.RecordExpectations.Return(Object returnValue)
   at Request.UserSyncTest.SyncData() in UserSyncTest.cs:line 75

我尝试模拟的方法的源代码是:

代码语言:javascript
复制
public class RequestDataLayer
{
        public static User[] GetAllUsers()
        {
            // some LINQ magic to get users out of DB, then a .ToArray()
            // returns an object array
        }
}

因此,除了该方法是静态的之外,它没有任何特殊之处。从那时起,我重构了这个方法,使其成为非静态的,在这个页面的底部产生效果。

我之前遇到过一个类似的问题,这与利用TypeMock的Isolate<>语法有关,我遇到了相同的场景,测试在本地运行良好(通过Gallio test runner),但在构建服务器上失败(CC.Net、Gallio、TypeMock、NCover)。

我在开发和构建机器上都运行了6.0.4.0的TypeMock。

此外,似乎起作用的是将RecordExpectations块中的第74行和第75行向下移动-错误没有显示,但方法调用并没有被默默地模仿。

欢迎有想法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-08 00:57:08

好了,我们找到了问题所在--令人尴尬的是,没有通过NAnt脚本正确地调用TypeMock。

然而,这仍然是一个谜,但是为什么我们没有简单地看到"TypeMock“is not enabled错误消息,而是看到了这种奇怪的行为。

票数 0
EN

Stack Overflow用户

发布于 2011-12-07 05:46:23

当我看到这类事情时,通常是:

  • 测试排序-测试在开发框上以一种顺序运行,但在生成框上以不同的顺序运行,这会发现一些问题,比如在themselves.
  • Environment差异之后,一些装置不能正确清理-比如开发环境运行32位构建,但构建服务器运行64位构建。

我的博客上有a troubleshooting guide for these hard-to-figure-out issues。试着浏览一下,看看其中有没有可能对你有帮助的。

我要说的是:找出导致问题的夹具有时是一个漫长而痛苦的过程。我一直到了从单元测试程序集中删除所有fixture,然后重新添加它们,一次一个,直到问题再次出现为止。你可能需要有一点耐心。

如果你有选择的话,升级到最新的版本。随着每个版本的发布,Typemock在这些奇怪的问题上变得越来越好,这个问题可能会在以后的版本中自我修正。

票数 4
EN

Stack Overflow用户

发布于 2011-12-07 16:54:13

免责声明我在Typemock工作。

您是否在测试方法或测试类上使用ClearMocks属性?

如果您正在使用该属性,但仍收到异常,请联系我们的支持人员:

typemock.com上的支持

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8403572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档