【发布时间】:2020-02-20 18:37:45
【问题描述】:
我正在尝试将我的单元测试用例包含在我的构建管道中,以将这些单元测试用例作为构建的一部分运行。我的测试用例很少使用存储在单元测试项目的 XML 文件中的测试数据。这些测试在我的本地系统中成功运行。但是当我尝试将这些测试用例作为 TFS 构建管道的一部分运行时,这些测试用例会失败,因为构建无法找到这些 XML 文件的数据。
我尝试替换 TFS 构建路径的配置文件应用程序设置,但它不起作用。测试用例仍然面临同样的失败。 还尝试将这些文件包含在 bin 文件夹中,我可以看到这些文件存在。
以下是我在运行单元测试作为 TFS 构建的一部分时遇到的异常。
Assert.Fail 失败。系统异常:找不到一部分 小路 'I:\Agent-Win-C_work\495\s\STARS-2.UnitTests\bin\XMLStore\CustomerRequest.xml'。 堆栈跟踪:在 System.IO.__Error.WinIOError(Int32 errorCode, String MaybeFullPath) 在 System.IO.FileStream.Init(String path, FileMode 模式、FileAccess 访问、Int32 权限、Boolean userRights、FileShare 共享,Int32 bufferSize,FileOptions 选项,SECURITY_ATTRIBUTES secAttrs,字符串 msgPath,布尔 bFromProxy,布尔 useLongPath, 布尔检查主机)在 System.IO.FileStream..ctor(字符串路径,FileMode 模式、FileAccess 访问、FileShare 共享、Int32 bufferSize、 FileOptions 选项,字符串 msgPath,布尔 bFromProxy)在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess 访问,文件共享共享,Int32 bufferSize)在 System.Xml.XmlDownloadManager.GetStream(Uri uri,ICredentials 凭据,IWebProxy 代理,RequestCachePolicy 缓存策略)在 System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri,字符串角色,类型 ofObjectToReturn) 在 System.Xml.XmlTextReaderImpl.OpenUrlDelegate(对象 xmlResolver)在 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode 代码,CleanupCode backoutCode,对象 userData)在 System.Threading.CompressedStack.Run(CompressedStack 压缩栈, ContextCallback 回调,对象状态)在 System.Xml.XmlTextReaderImpl.OpenUrl() 在 System.Xml.XmlTextReaderImpl.Read() 在 System.Xml.XmlLoader.Load(XmlDocument 文档,XmlReader 阅读器,布尔值 preserveWhitespace)在 System.Xml.XmlDocument.Load(XmlReader 阅读器) 在 System.Xml.XmlDocument.Load(字符串文件名) STARS_2.UnitTests.TestCommon.TestDataCaller.RFCXmlConnect(字符串 文件名)在 I:\Agent-Win-C_work\495\s\STARS-2.UnitTests\TestCommon\TestDataCaller.cs:16行
解决问题的任何建议
【问题讨论】:
-
您好 Naveen,您如何在代码中引用该文件?就像 SalamiArmy 提到的那样,您可能需要使用部署项,但无论如何从堆栈跟踪来看,xml 文件似乎位于子文件夹 (XMLStore) 中,您是使用完整路径还是相对路径来引用它?对于部署项目,它也是 [DeploymentItem(@"XMLStore\CustomerRequest.xml")]
-
嗨,Naveen,关于这张票的任何更新,您有机会实施 SalamiArmy 建议的解决方案吗?你能解决吗?
-
好吧,SalamiArmy 提供的建议对我来说不起作用。我们修改了单元测试代码以使用反射加载测试数据
标签: unit-testing tfs continuous-integration tdd azure-pipelines-build-task