C# 如何在NUnit C中将文件合并到文件夹路径

C# 如何在NUnit C中将文件合并到文件夹路径,c#,linux,nunit,facebook-c#-sdk,C#,Linux,Nunit,Facebook C# Sdk,我已经使用NUnit Testcase编写了一个测试。我已经定义了文件名“irm_xxx_tbbmf_xu.csv.ovr”以及我希望该文件输出的数据 我在NUnit TestCase属性参数中定义了一个变量processFilePath,其中包含该文件的位置和文件名 我的问题是我编写processFilePath的方式,我如何编写它,以便它按照我的预期从[NUnit.Framework.TestCase]中找到文件名。目前,它并没有将两者结合起来。这句话会像我写的那样起作用吗 [NUnit.F

我已经使用NUnit Testcase编写了一个测试。我已经定义了文件名“irm_xxx_tbbmf_xu.csv.ovr”以及我希望该文件输出的数据

我在NUnit TestCase属性参数中定义了一个变量processFilePath,其中包含该文件的位置和文件名

我的问题是我编写processFilePath的方式,我如何编写它,以便它按照我的预期从[NUnit.Framework.TestCase]中找到文件名。目前,它并没有将两者结合起来。这句话会像我写的那样起作用吗

[NUnit.Framework.TestCase("irm_xxx_tbbmf_xu.csv.ovr", "6677,6677_6677,3001,6")]
[NUnit.Framework.TestCase("irm_xxx_tbbmf_xxx.csv.ovr", "6677,22,344")]
public void ValidateInventoryMeasurement(string path, string expected)
{
    var processFilePath = "/orabin/product//inputs//actuals/";
    var actual = Common.LinuxCommandExecutor.
        RunLinuxcommand("cat " + path);

    Assert.AreEqual(expected, actual);
}

根据我的评论,在查找要在测试中比较的文件时,实际上没有使用路径。 组合文件路径的方法有很多-@juharr建议使用Path.combine是最好的做法,尤其是在Windows上,但是你可以使用任何字符串连接技术-我在下面使用了字符串插值

using System; // Other usings 
using NUnit.Framework;

namespace MyTests
{
....


[TestCase("irm_xxx_tbbmf_xu.csv.ovr", "6677,6677_6677,3001,6")]
[TestCase("irm_xxx_tbbmf_xxx.csv.ovr", "6677,22,344")]
public void ValidateInventoryMeasurement(string path, string expected)
{
    const string processFilePath = "/orabin/product/inputs/actuals/";
    var actual = Common.LinuxCommandExecutor
                       .RunLinuxcommand($"cat {processFilePath}{path}");

    Assert.AreEqual(expected, actual);
}
注释

我假设测试中的系统是通用的。LinuxCommandExecutor processFilePath路径是常量,可以转换为常量字符串 我已经把房间打扫干净了 您可以在NUnit.cs文件的顶部添加一个using NUnit.Framework,这样就不需要重复完整的名称空间NUnit.Framework.TestCase,即只需[TestCase..] 您可能需要注意cat输出中是否有多余的空格。在这种情况下,您可以考虑:
你试过运行你的测试吗?最好是这样做,然后问问题,而不是问潜在的问题。@StuartLC我将如何附加它?@JOpenDock Use Path。Combine@StuartLCpath.combine如何与我的示例一起工作?
  Assert.AreEqual(expected, actual.Trim());