错误:运行单元测试时编译锁定

时间:2009-11-03 12:18:40

标签: c# asp.net unit-testing

我们有超过1000个单元测试。不久前,当他们与其他测试一起运行时,其中18个开始失败。这些测试运行Windows工作流程。

如果他们独自奔跑,他们会通过。

  • 错误似乎是找不到连接字符串。
  • 找不到连接字符串,因为它不知道要查找哪个配置文件。
  • 它不知道要查找哪个配置文件,因为它找不到应用程序上下文
  • 由于编译锁定,它无法找到应用程序上下文。

任何人都知道可能出现什么问题,以及如何解决这个问题?我得到的错误是:

Message: Exception message: The
supplied connection string is not
valid, because it contains
insufficient mapping or metadata
information. Parameter name:
connectionString Inner exception  :
System.InvalidOperationException:
Unable to determine application
context. The ASP.NET application path
could not be resolved. --->
System.Reflection.TargetInvocationException:
Exception has been thrown by the
target of an invocation. --->
System.Web.HttpException: The type
initializer for
'System.Web.Compilation.CompilationLock'
threw an exception. --->
System.TypeInitializationException:
The type initializer for
'System.Web.Compilation.CompilationLock'
threw an exception. --->
System.NullReferenceException: Object
reference not set to an instance of an
object.    at
System.Web.Compilation.CompilationLock..cctor()
--- End of inner exception stack trace ---    at   System.Web.Compilation.CompilationLock.GetLock(Boolean&
gotLock)    at
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()

由于

西拉

1 个答案:

答案 0 :(得分:2)

由于您提到您的测试运行WF工作流,我猜测之前的测试运行有一个或多个仍在某个线程上运行的工作流实例,从而锁定编译器,因为程序集仍在某处的某个进程中加载

您是否可以打开任务管理器并调查是否存在仍在某处使用工作流程的正在运行的进程?如果是这样,请将其删除,看看是否无法编译。