【发布时间】:2013-11-04 09:03:52
【问题描述】:
在 VS2012 中,我有一堆(MS)单元测试,它们使用不同的 xml/text 文件,我存储在与测试文件类相同的文件夹中。
我使用 File.OpenRead(AppDomain.CurrentDomain.BaseDirectory + "file") 打开这些文件
如果我只运行一个测试,它会起作用,文件会被读取。
如果我一次运行所有测试,BaseDirectory 会返回不同的路径(在 TestResults/Deploy/currentdatetime/Out 中)并且显然无法在此处找到文件。
怎么办?
谢谢!
【问题讨论】:
-
为每个测试尝试 [[DeploymentItem(@"your relative file path")]][1] 属性。另外我认为您需要将所有文件添加到项目中并将它们的属性设置为 CopyToOutputDirectory 设置为“CopyAlways”。 msdn.microsoft.com/en-us/library/…
-
1.没用 :( 2. 已经这样做了,它们被复制了,基目录的路径在一次运行多个测试时会发生变化。
-
你用 DeploymentItem 属性装饰了什么?测试类还是测试方法?
-
我遇到了同样的问题。我在不同的文件中有我的 .config 文件。示例
。我在 MySectionName.SeparateFile.config 文件上有“始终复制”。如果我一次运行一个测试,一切都很好。我在“测试资源管理器”中单击“全部运行”,我得到一个 ConfigurationErrorsException 异常,因为它正在“TestResults/Deploy/currentdatetime/Out”目录中查找“MySectionName.SeparateFile.config”文件。呜呜呜! :(
标签: c# .net unit-testing mstest appdomain