Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# [TestMethod]中的Directory.CreateDirectory行为异常_C#_Testing_Filesystems_Directory - Fatal编程技术网

C# [TestMethod]中的Directory.CreateDirectory行为异常

C# [TestMethod]中的Directory.CreateDirectory行为异常,c#,testing,filesystems,directory,C#,Testing,Filesystems,Directory,这件事我真的不知道。。。我已经创建了一些批处理代码,并进行了一些测试,在调用要测试的方法之前设置了一个目录结构。这个问题可以用下面的例子来说明 [TestMethod] public void StupidTest() { Directory.CreateDirectory("./XXX"); Assert.IsTrue(Directory.Exists("./XXX")); //new FileInfo( "./XXX/Y

这件事我真的不知道。。。我已经创建了一些批处理代码,并进行了一些测试,在调用要测试的方法之前设置了一个目录结构。这个问题可以用下面的例子来说明

    [TestMethod]
    public void StupidTest()
    {
        Directory.CreateDirectory("./XXX");
        Assert.IsTrue(Directory.Exists("./XXX"));
        //new FileInfo( "./XXX/YYY.txt").Create().Close();
    }
当最后一行被注释掉时,测试运行正常,但是在testresults的“out”文件夹中,没有创建任何文件夹。当包含最后一行时,测试也会运行,并且XXX文件夹和YYY.txt文件都存在于测试运行的“Out”文件夹中。如果主体中只包含测试的最后一行,则测试失败,并抱怨路径不存在

我发现一些参考资料提到了一些关于文件系统虚拟化的内容,并且测试应用程序没有足够的权限在“Out”文件夹中创建文件夹


任何帮助都将不胜感激

您是否可以尝试使用ProcessMonitor(从MS下载站点,免费),并记录该进程的所有活动,然后我们可以查看目录是否被创建、移动、删除等等。

这很奇怪。尝试单步执行该方法,并检查当前目录(Environment.CurrentDirectory)是否与您预期的相同。Environment.CurrentDirectory确实设置为当前测试运行的“Out”文件夹。如果在创建目录后放置断点,您能在资源管理器中看到该目录吗?在断点处暂停时,您是否可以自己在资源管理器中创建目录?(我假设您的测试是在您的用户上下文中本地运行的。)这一点不错,但奇怪的结果。。。如果我在断言上放置断点,则该文件夹确实存在于“Out”文件夹中,只有在测试完成后,它才会再次消失。。。作为一项规则,我观察到一切都按预期工作(断言等),测试刚刚完成,所有空文件夹似乎都消失了。。。问题是为什么?