gpt4 book ai didi

c# - Teamcity - 编写访问单独 JSON 文件的测试

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:26 24 4
gpt4 key购买 nike

我为 C# 项目运行了 TeamCity。单元测试是使用 MSTest 编写的,它们包含一个外部 JSON 文件。它们被加载是因为它们很大,我不想在 C# 中转义它们。

我这样导入它们:

[TestInitialize]
public void Setup()
{
using (StreamReader r = new StreamReader(@".\currency2.json"))
{
_json = r.ReadToEnd();
}
...

它们在本地运行良好。我有“复制始终设置”,但是当使用 Teamcity 运行测试时,我收到一条错误消息,指出无法在临时文件夹中找到它们。它们被复制到构建服务器,但它们不在此临时文件夹中。

找不到文件“E:\TeamCity\buildAgent\temp\buildTmp\SYSTEM_SERVER 2016-07-18 15_28_19\Out\currency2.json”

我在测试构建步骤中将 **\bin\release\*test*.dll 设置为我的测试文件名

感谢任何帮助。

最佳答案

我遇到了类似的问题。

我把测试文件的属性改成了这个

  • 构建操作 = 内容
  • 复制到输出目录 = 始终复制

Teamcity 会将文件复制到构建文件夹,但它似乎不会保持您期望的相同结构。

所以我创建了一个文件查找循环。这将降低预期的文件夹,直到找到有问题的文本文件。

 var pathLookups = new string[]
{
"2ndFolder\\3rdFolder\\test.json", // folder that normally workes
"3rdFolder\\test.json",
"test.json"
};
foreach (var pathLookup in pathLookups)
{
try
{
jsonFileCollection = JsonFileLoader<TestJsonType>.LoadJson(pathLooksup);
if (jsonFileCollection!= null)
{
break;
}
}
catch (Exception)
{

Console.WriteLine("Attempted to load test json from path:" + pathLooksup);
}
}

这不是最干净的解决方案,但可以完成工作。您可以重构它以使其看起来更漂亮。

关于c# - Teamcity - 编写访问单独 JSON 文件的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38439597/

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