我正在运行上一个问题中提到的Xunit测试用例。
How to get passed and fail test case count in xunit using cake(c# make) script
在运行测试用例时,我尝试从AppDomain
访问文件时,大多数测试用例都失败了。
测试用例在Visual Studio
中成功。
从错误日志中,我可以看到它尝试从Xunit控制台运行器位置而不是应用程序位置读取文件。
注意: 我使用的NoAppDomain Xunit2Settings为假。
答案 0 :(得分:1)
使用单元测试和文件时,我建议首先看看是否可以通过使用内存或汇编资源中的数据来避免使用实际的文件系统。这样,并行执行,文件系统锁或类似环境相关的事情就不会成为问题。 所以如果你有机会从测试中重构文件系统(除非那是你的测试),我会先走这条路。
解决您遇到的问题的一种方法是使用绝对路径,您可以在测试中使用测试程序集位置然后使用Path.Combine来实现此目的。有一个很好的StackOverflow答案解释如何获得程序集的路径: https://stackoverflow.com/a/52956/5883153
您可以尝试的快速解决方法是使用Xunit2Settings WorkingDirectory设置与VisualStudio相同的当前目录,但这不是我测试或推荐的内容。