我的单元测试的堆栈跟踪如何与实际源不匹配?

时间:2010-01-26 18:12:19

标签: unit-testing tfs2008 tfsbuild

在C#类库和一组测试中。一切进展顺利,直到我添加了一组新的测试 - 它们在我的机器上正确运行,但在TFS Build服务器上失败。构建日志中的堆栈跟踪没有意义 - 一个类的构造函数似乎映射到其中一个方法。

如果我的班级看起来像这样:

1.  public class ClassToBeTested   
2.  {
3.  
4.      /// <summary>
5.      /// Default constructor.
6.      /// </summary>
7.      public ClassToBeTested()
8.      {
9.  
10.     }
11. 
12.     /// <summary>
13.     /// Default constructor.
14.     /// </summary>
15.     public MethodToTest()
16.     {
17.         /* do stuff that throws exception */
18.     }
19. 
20. }

在我的单元测试课中,我有这个:

1.  [TestMethod()]
2.  public void UpdateTest()
3.  {
4.       ClassToBeTested Target = new ClassToBeTested();
5.       ClassToBeTested.MethodToTest();
6.  }

然后我的堆栈跟踪表明:

测试方法unittestclass.UpdateTest抛出异常/无论什么/
ClassToBeTested.MethodToTest():第17行 unittestclass.UpdateTest():第4行

这怎么可能?

1 个答案:

答案 0 :(得分:1)

我认为抛出异常的方法中的代码可能与它有关。特别是如果那里的东西有一个静态构造函数: 也许这可能会有所启发:

http://msmvps.com/blogs/jon_skeet/archive/2010/01/26/type-initialization-changes-in-net-4-0.aspx

但是需要更多帮助......可能缺少代码方法详细信息和/或异常类型。

还要检查调试计算机上的构建配置是否与构建服务器相同..或者尝试在发布/发布配置中进行测试