NUNit-.xml资源和;调用线程无法访问此对象,因为其他线程拥有它";

NUNit-.xml资源和;调用线程无法访问此对象,因为其他线程拥有它";,xml,nunit,Xml,Nunit,在我的C#项目中,我使用.xml文件,但NUnit出现了问题。若我尝试将这些文件作为资源添加到项目中,则在运行单元测试后,其中大多数都会出现错误: “调用线程无法访问此对象,因为其他线程拥有它” 当我尝试硬编码文件的相对路径时,程序运行正常,但一些测试失败,显示错误: “System.IO.DirectoryNotFoundException:找不到路径“C:\Users\Me\AppData\Local\JetBrains\Installations\ReSharperPlatformVs14

在我的C#项目中,我使用.xml文件,但NUnit出现了问题。若我尝试将这些文件作为资源添加到项目中,则在运行单元测试后,其中大多数都会出现错误: “调用线程无法访问此对象,因为其他线程拥有它”

当我尝试硬编码文件的相对路径时,程序运行正常,但一些测试失败,显示错误: “System.IO.DirectoryNotFoundException:找不到路径“C:\Users\Me\AppData\Local\JetBrains\Installations\ReSharperPlatformVs14_001\XmlFiles\MyFile.xml”的一部分”


我使用的是最新的NUnit 3.2.0。

结果表明,NUnit在UI之外的其他线程中运行,并且在代码中对界面进行了一些更新。解决方案是添加一个静态变量(在设置中设置),该变量将阻止在测试运行时更新UI。现在一切都很好-问题解决了。

您是否访问OneTimeSetUp的资源以及测试本身?很可能这两个线程运行在不同的线程上。我使用的是[Setup]。无论如何,你是对的-结果是NUnit在UI以外的其他线程中运行,并且在cose中对接口进行了一些更新,解决方案是添加一个静态变量(在设置中设置),该变量将阻止在测试运行时更新UI。现在所有的测试都通过了。谢谢