c# - 如何访问C#项目目录

标签 c# .net xunit

<分区>

我正在尝试为 C# 项目设置单元测试,我想我对如何设置测试项目的目录结构感到困惑

在VS2017中,我项目展开如下

Solution
|--*project to test*
|    |--*project content*
|
+--*test project*
     |--Files
     |   |--TestDestination
     |   |--TestDir
     |   +--EmptyDir
     |
     |--Controllers
     |--Services
     +--Models

我在"file"目录中有一些预配置的测试目录和文件,我想从我的测试类中访问它们,但我终究无法弄清楚如何以编程方式表达到该目录的路径。

我试过了

Path.Combine("Files", "FileManager", "TestDir")

哪个(我认为)会导航到相对于 Java 项目的 TestDir 目录,但我猜 C# 不共享此约定。我也试过:

Path.Combine(Directory.GetCurrentDirectory(), "Files", "FileManager" "TestDir")

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "FileManager", "TestDir");

两者都导航到以下目录

'C:\Users\John\Source\Repos\*Solution*\Unit_Tests\bin\Debug\netcoreapp2.0\Files\FileManager\TestDir

这(显然)是不正确的。

有没有一种以编程方式访问我的项目目录的好方法?或者以这种方式获取它并从中导航出来会更好吗?如果可以,我该怎么做?

最佳答案

您只需要使用 ../ 导航到父目录从它的外观来看,您需要向上导航 3 个父目录才能到达测试项目,所以这应该可以工作

Path.Combine(Directory.GetCurrentDirectory(), "../../../Files", "TestDir")

关于c# - 如何访问C#项目目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070080/

相关文章:

c# - 将密码散列到 SqlServer

c# - 如何在 C# (.NET) 中执行 Javascript 代码

c# - SQL Server 连接计数问题

c# - 将复杂参数传递给 [Theory]

c# - 处理数据库数据时 xUnit 测试死锁

c# - CaSTLe Windsor Resolve 在运行时

c# - 如何根据 rowversion/timestamp 值查询 Code First 实体?

c# - 密码学:为什么我会根据从哪个证书库加载证书而获得不同的 RSA 签名?

c# - Regex MatchCollection obj 在 Regex.Matches 之后挂起\"Function evuluation timed out"

c# - 如何在 ASP.NET Core 中对 ViewBag 进行单元测试?