网络核心:通过集成测试找到应用程序组装位置

时间:2019-08-06 22:32:24

标签: c# asp.net-core .net-core xunit

我们有一个API Real Application,它正在运行以下代码来获取程序集目录。

Assembly.GetEntryAssembly().Location

Result:
C:\\OriginalApplicationAPI\\bin\\Debug\\netcoreapp2.2

现在,我们正在运行一个Integration Xunit项目,该项目正在运行原始项目中的Startup,appsettings等。

从集成测试项目渲染器运行此代码,

C:\\Users\\..\\.nuget\\packages\\microsoft.testplatform.testhost\\15.9.0\\lib\\netstandard1.5"

如何从测试项目中引用OriginalApplicationAPI程序集位置?是按名称空间还是项目引用?

谢谢

1 个答案:

答案 0 :(得分:0)

您将需要知道程序集中的类型。

比方说App.MyClass是在程序集中定义的。您可以使用反射来获取包含该类型的程序集的位置:

Assembly.GetAssembly(typeof(App.MyClass)).Location. 

您不能使用名称空间来执行此操作,因为名称空间可以存在于多个程序集中。

或利用

Assembly.GetExecutingAssembly().Location