我需要更好地了解何时为单元测试加载程序集。
我有一个班级(ClassDerived
),我是单元测试。 ClassDerived
派生自另一个类(ClassBase
)。
我尝试在运行第一个测试之前使用ClassInitialize
属性初始化ClassDerived
。单元测试项目引用了ClassBase
和ClassDerived
。
在ClassInitialize
方法中执行代码时,我注意到尚未加载包含ClassDerived
的程序集。
我通过查看来自GetAssemblies()
的调用的返回值确定了这一点。
var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
奇怪的是,加载了包含ClassBase
的程序集。
我尝试将初始化代码移动到Unit Test构造函数,结果相同。
有谁知道发生了什么事?
答案 0 :(得分:1)
我怀疑负载时间不是单元测试所特有的。在.net 3.5中,这是我见过的:
给定一个方法'X'的程序集'X',方法'Y'使用程序集'Z'中的东西。
在这种情况下,程序组'Z'将在方法'Y'执行之前加载。 .net 4.0假设在许多方面引入了更大的“懒惰”,所以我不知道上述观察结果是否仍然存在。