我的解决方案中有两个项目ChatProject
和ChatProjectTest
。
ChatProjectTest
有一个单独的类文件,其中有许多方法可以测试ChatProject
中的方法。
我的问题是,ChatProject
使用存储在data.bin
文件夹(即log.txt
)中的某些文件,如.exe
和ChatProject\bin\Debug\ChatProject.exe
。我希望ChatProjectTest
使用相同的文件,而不是像现在一样在自己的.exe
文件夹(ChatProjectTest\bin\Debug\ChatProject.exe
)中创建或加载新文件。
要清楚,文件路径存储在ChatProject
中的常量变量中,如下所示:
private static string DATABASE_NAME = "data.bin";
我没有硬编码他们的路径。
答案 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");
}
}