首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在BenchmarkDotNet中读取环境变量

在BenchmarkDotNet中读取环境变量
EN

Stack Overflow用户
提问于 2022-10-20 20:48:26
回答 1查看 25关注 0票数 1

在从命令行运行BenchmarkDotNet项目时,我试图从环境变量加载值。我使用--envVars键传递我的环境变量:value。然而,他们并没有被基准所接受。

下面是一些示例代码:

代码语言:javascript
复制
using BenchmarkDotNet.Attributes;

[MemoryDiagnoser]
[ReturnValueValidator(failOnError: true)]
public class RedisBenchmark
{
  [GlobalSetup]
  public void GlobalSetup()
  {
    _redisService.Servers = System.Environment.GetEnvironmentVariable(Constants.REDIS_SERVERS) ?? "";
    if (string.IsNullOrEmpty(_redisService.Servers)) _redisService.Servers = "NO SERVERS SPECIFIED";
  }

  private static RedisService _redisService = new();

  [Benchmark(Description = "Write and Read to Redis")]
  public void WriteAndReadRedis() => _redisService.WriteAndRead();
}

请注意上面的“未指定服务器”字符串。当我的RedisService在基准测试升温时运行并输出其连接字符串时,它会输出该字符串,因此我知道GlobalSetup运行,但它无法找到或读取环境变量。

我遗漏了什么吗?

这里还有一些背景和讨论:https://github.com/dotnet/BenchmarkDotNet/issues/2156

EN

回答 1

Stack Overflow用户

发布于 2022-10-20 21:15:41

在本文撰写之时,有一个错误影响到[ReturnValueValidator],看起来它跳过运行GlobalSetup。作为临时修复,您可以删除[ReturnValueValidator],并且它应该可以工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74146160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档