.net core C#.NET内核-在哪里存储用于集成测试的大型文件?

.net core C#.NET内核-在哪里存储用于集成测试的大型文件?,.net-core,integration-testing,web-api-testing,.net Core,Integration Testing,Web Api Testing,我正在编写一些.NET核心API集成测试,以验证文件上载机制是否正常工作 存储为测试目的上传的大文件(2Gb+)的最佳做法是什么?由于这些测试文件的大小,在解决方案/源代码管理中包含它们似乎不是一个好主意 当使用大文件编写集成测试时,建议采用什么路径?我看到两个选项 #1如果文件的内容不重要,我会动态生成大小为xGB的流(比如序列化数组,对同一复杂结构引用数百万次)。尝试在console应用程序中创建适当的文件,并将其保存在本地,以查看它是否首先满足您的期望 #2我建议将这些文件放在Azure存

我正在编写一些.NET核心API集成测试,以验证文件上载机制是否正常工作

存储为测试目的上传的大文件(2Gb+)的最佳做法是什么?由于这些测试文件的大小,在解决方案/源代码管理中包含它们似乎不是一个好主意

当使用大文件编写集成测试时,建议采用什么路径?

我看到两个选项

#1如果文件的内容不重要,我会动态生成大小为xGB的流(比如序列化数组,对同一复杂结构引用数百万次)。尝试在console应用程序中创建适当的文件,并将其保存在本地,以查看它是否首先满足您的期望

#2我建议将这些文件放在Azure存储中。如果需要,您可以生成适当的SAS令牌,使这些文件直接通过http地址可用,或者使用BlobStorage Nuget包将它们作为流加载。Blob存储也很便宜。或者使用可以放置这些文件并可在集成测试中检索的任何服务器


绝对不要在项目中包含这些文件

您是否需要测试该方法是否接受如此大的文件?或者该方法使用从文件读取的数据执行的逻辑?如果是第二个,我会尝试模拟从文件中读取的数据,而不是上传带有数据的文件。这是第一个。这是为了验证我们在上传一个特定大小的文件时没有收到任何IIS错误,所以我真的需要尝试上传一个真实的文件。另外,我目前的方法是在测试执行期间在磁盘上生成一个大的虚拟文件,尝试并上传它,然后在拆卸时删除该文件。我不知道这是否是最好的方法,但这正是我目前正在做的。你不能在需要时用一小段代码生成一个大文件吗?是的,我可以,这就是我提到的我目前正在做的,但是我不确定这是否是最好的方法。我肯定喜欢第一种方法。第一种方法是我昨天使用的方法,它似乎工作得很好。谢谢大家的帮助。