Arn*_*rod 9 nunit environment-variables visual-studio-debugging test-explorer visual-studio-2019
似乎是一个非常微不足道的问题,但令我惊讶的是,我发现网上没有提到这一点。
我有一个 Nunit 测试项目(别人写的,我不想改变太多),我需要调试。这些测试取决于它们使用 读取的环境变量Environment.GetEnvironmentVariable。
我的问题是:在 Visual Studio 中调试测试时,有没有办法传递环境变量?
我知道我可以在通过Project Properties->Debug调试可执行项目时传递环境变量,但这在运行测试时不起作用(例如通过Test Explorer)。我也知道我可以通过.runsettings文件传递测试参数,但这些只能通过TestContext类访问。
Zar*_*rat 14
我还知道我可以通过 .runsettings 文件传递测试参数,但这些参数只能通过 TestContext 类访问。
您还可以在文件中指定环境变量.runsettings:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<RunConfiguration>
<EnvironmentVariables>
<YOUR_VARIABLE>Value for your variable</YOUR_VARIABLE>
<SOME_OTHER_VARIABLE>With another Value</SOME_OTHER_VARIABLE>
</EnvironmentVariables>
</RunConfiguration>
</RunSettings>
Run Code Online (Sandbox Code Playgroud)
或者(如果您需要运行代码或计算值)您可以实现一个DataCollector提供环境变量的方法ITestExecutionEnvironmentSpecifier
// Add a reference to nuget package `Microsoft.TestPlatform.ObjectModel`
// The assembly name must end with `Collector` (i.e. match `*collector.dll`)
[DataCollectorFriendlyName("my own example collector")]
[DataCollectorTypeUri("datacollector://myown/examplecollector/1.0")]
public class MyDataCollector : DataCollector, ITestExecutionEnvironmentSpecifier
{
public override void Initialize(
XmlElement configurationElement,
DataCollectionEvents events,
DataCollectionSink dataSink,
DataCollectionLogger logger,
DataCollectionEnvironmentContext environmentContext)
{
// inspect configurationElement for your custom settings
}
public IEnumerable<KeyValuePair<string, string>> GetTestExecutionEnvironmentVariables()
{
return new Dictionary<string, string>
{
["YOUR_VARIABLE"] = "your value",
};
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以通过以下文件配置数据收集器.runsettings:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<RunConfiguration>
<TestAdaptersPaths>path/where/to/find/your/collector</TestAdaptersPaths>
</RunConfiguration>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="my own example collector" uri="datacollector://myown/examplecollector/1.0">
<Configuration>
<SomeSettingHere/>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2155 次 |
| 最近记录: |