gpt4 book ai didi

c# - 使用 NUnit 进行测试时应该如何处理数据文件?

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:21 25 4
gpt4 key购买 nike

假设我有一个文件 data.xml。我想打开这个相对于我的应用程序,首先使用例如 File.Open(data.xml) 在我的可执行文件旁边开始。我将该文件作为现有资源添加到我的 Visual Studio (2017) 项目中,并将其配置为在生成时复制到输出目录。这行得通。

我的问题是我的解决方案中有第二个项目包含我的 NUnit 测试,引用了主项目。当在我运行测试之前构建时,这不会将 data.xml 复制到测试二进制目录并且测试失败,因为它无法打开文件(很明显) .

单元测试时如何处理外部文件?我更愿意不使用绝对路径。

最佳答案

我假设您的意思是数据文件由应用程序使用,而不仅仅是由测试使用。当 VS 将应用程序复制到您的测试输出目录时,它不会复制任何其他内容,如您所见。

有几种方法可以到达这里...

  1. 向您的测试项目添加构建后步骤,以将文件从应用程序输出目录复制到测试输出目录。这会起作用,但维护起来很麻烦。我不推荐它。

  2. 将资源嵌入到您的应用中并将其更改为使用资源而不是外部文件。缺点是它可能需要在应用程序中进行多项更改,具体取决于您访问数据的方式。如果意图是更改文件将立即更改应用程序的行为而无需重新编译,则它根本不起作用。

  3. 更改一个或两个应用程序以使用通用输出目录。这样,只要数据发生变化,它就会被复制并可供所有测试使用。这就是我通常喜欢的处理情况的方式。

关于c# - 使用 NUnit 进行测试时应该如何处理数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47674684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com