我尝试将某些单元测试与我们的TFS 2010 CI构建过程集成/自动化,并在测试失败时收到此奇怪的错误消息。
花了一些时间试图弄清楚根本原因是什么我把代码简化为几行:
如果我做的话
Book b = new Book { ID = 1, Name = "test book" };
Category c = new Category { ID = 1, Name = "test category" };
Assert.AreEqual(1,1);
然后一切都很好。但如果我这样做:
Book b = new Book { ID = 1, Name = "test book" };
Category c = new Category { ID = 1, Name = "test category" };
b.Category = c;
Assert.AreEqual(1,1);
单元测试将失败,并显示“测试运行时代理进程已停止”消息。
如果我在本地计算机上单独运行测试,两个版本都可以正常工作。
我查看构建服务器上的事件查看器,看看:
Faulting application name: QTAgent32.exe, version: 10.0.30319.1, time stamp: 0x4ba20efb
Faulting module name: System.Data.Entity.ni.dll, version: 4.0.30319.1, time stamp: 0x4ba1e2fd
Exception code: 0xc00000fd
Fault offset: 0x0029ffae
Faulting process id: 0x484
Faulting application start time: 0x01cd74e84f30a93b
Faulting application path: c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent32.exe
Faulting module path: C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Data.Entity\7aa839fb16503243d6ae454ab334bcf4\System.Data.Entity.ni.dll
Report Id: 8d4222b0-e0db-11e1-8dbe-005056a3481b
以前有人在这看到过这种奇怪的行为吗?
编辑:我正在使用EF 4.0,数据库优先模型,因此所有实体类都是使用ADO.NET实体数据模型模板创建的。