解决方案中使用不同默认路径的两个项目

时间:2018-05-17 21:04:06

标签: c# visual-studio

我的解决方案中有两个项目ChatProjectChatProjectTest

ChatProjectTest有一个单独的类文件,其中有许多方法可以测试ChatProject中的方法。

我的问题是,ChatProject使用存储在data.bin文件夹(即log.txt)中的某些文件,如.exeChatProject\bin\Debug\ChatProject.exe。我希望ChatProjectTest使用相同的文件,而不是像现在一样在自己的.exe文件夹(ChatProjectTest\bin\Debug\ChatProject.exe)中创建或加载新文件。

要清楚,文件路径存储在ChatProject中的常量变量中,如下所示:

private static string DATABASE_NAME = "data.bin";

我没有硬编码他们的路径。

3 个答案:

答案 0 :(得分:3)

一个解决方案是配置项目以将所有输出文件放在解决方案根目录下的相同Collections.sort(list, comparator)目录中(而不是两个单独的bin/文件夹)。 为此,请转到项目设置下的“构建”选项卡,并将“输出路径”设置为

bin/

对两个项目重复此操作。

答案 1 :(得分:0)

如果您没有指定文件的路径,则会在当前目录中查找它们。 要使用相同的路径,您必须从测试输出中指定某种相对路径,或者将测试构建到与项目相同的文件夹中。

答案 2 :(得分:-1)

您可以允许注入目标文件路径e。 G。通过可选的构造函数参数:

public class SampleClass
{
    private readonly string OutputDirectory;

    public SampleClass(string outputDirectory = ".")
    {
        OutputDirectory = outputDirectory;
    }

    public void WriteData(string data)
    {
        File.AppendAllText($"{OutputDirectory}\\data.bin", data);
    }
}

[TestClass]
public class SampleClassTest
{
    [TestMethod]
    public void WriteDataTest()
    {
        var sut = new SampleClass("..\\..\\..\\ChatProject\\bin\\Debug");
        sut.WriteData("data");
    }
}