我正在将单元测试作为ASP.NET Core MVC解决方案的一部分运行。确切地说,.NET Core的版本是2.1。
我在launchSettings.json文件中创建了一个配置文件部分,其中包含我想由测试运行程序加载和注入的环境变量,以便环境变量可用,并且在运行单元测试时可以包含特定值。
将我的ASP.NET Core MVC项目中的launchSettings.json作为链接添加到我的单元测试项目中,并将属性设置为“生成操作-无,复制到输出文件夹-始终复制”。
该文件将复制到我的输出文件夹中,但是我不确定如何让测试运行器将其与UnitTesting配置文件一起使用。我尝试使用“测试”一词作为配置文件名称,似乎没有任何作用。
这是一个示例launchSettings.json文件:
BSSID,data1,data2
001122334455,float,float
001122334466,float,float
...
我了解默认情况下,git中会忽略launchSettings.json文件。我们将使用此文件的开发版本检入代码,其中将包含开发环境中预期可用的设置示例。
非常感谢您抽出宝贵时间阅读本文并提供帮助!
答案 0 :(得分:1)
我现在写了这个静态加载器,但这并不理想:
CASE WHEN year > 0 THEN
CAST (format('%s-08-31', year) AS timestamp)
END
答案 1 :(得分:0)
我创建了一个可以为您提供帮助的软件包:https://www.nuget.org/packages/DotNet.Project.LaunchSettings
您可以在此处找到来源:https://github.com/andygjp/DotNet.Project.LaunchSettings
我有一个与您相似的用例-我想测试不同的环境,并将登录详细信息保留在launchSettings.json中。
这是我的用法:
async Task Example()
{
var launchSettings = VisualStudioLaunchSettings.FromCaller();
var profiles = launchSettings.GetProfiles();
var profile = profiles.FirstOrEmpty();
var client = await AppEnvironment.FromEnvironment(profile.EnvironmentVariables).CreateClient();
// use the client
}
假定launchSettings.json位于通常位置:
MyProject->属性-> launchSettings.json
但是,如果您觉得有用,我可以添加该功能以从指定的文件路径加载启动设置。
上面的示例使用它找到的第一个配置文件,但是,您也可以使用特定的配置文件。
希望有帮助。
答案 2 :(得分:0)
在单元测试中使用环境变量的另一种解决方案(对于 mstest 或 xunittest)是通过为平台提供的 ".runsettings" 文件:
见以下链接: