如何并行化需要使用FileParamater的NUnit测试?

问题描述 投票:0回答:1
  • .NET 8.0
  • NUnit 4.1.0

我有一堆包含在

TestFixture
属性中的测试。

每个测试用例当前都以

FileParamater
的形式打开一个文件并将其传递给函数:

string path = "./filepath";
FileParameter file = new(new FileStream(path, FileMode.Open));
_ = await SomeFunction(file);
file.Data.Close();

我想并行执行夹具中的每个测试用例。我已经能够使用

[Parallelizable(ParallelScope.Children)]
对其他灯具执行此操作,它可以同时运行灯具内的所有测试。问题是,如果测试正在打开和关闭文件,那么如果它们同时运行,则该文件将在其他测试有机会使用它之前关闭。

并行化的最佳方法是什么,以便每个测试都可以打开相同的文件并同时使用它?

不能选择将文件内容作为字符串读取并使用它。

c# file parallel-processing nunit
1个回答
0
投票

如果每个测试只需要读取访问权限,那么您可以通过定义

FileAccess
FileShare
常量在每次执行之间共享只读文件。

string path = "./filepath";
FileParameter file = new(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read));
_ = await SomeFunction(file);
file.Data.Close();
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.