首页 > 解决方案 > ConfigurationManager.GetSection 返回 null,我不知道为什么

问题描述

我正在尝试将我的 App.config 文件中的环境和功能部分存储到 2 个不同的名称值集合中,并且由于某种原因它返回 null..

App.config 文件:

<?xml version="1.0" encoding="utf-8" ?>
  <configuration>
  <configSections>
    <sectionGroup name="capabilities">
        <section name="parallel" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </sectionGroup>

    <sectionGroup name="environments">
        <section name="chrome" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        <section name="firefox" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        <section name="edge" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </sectionGroup>
</configSections>

<appSettings>
    <add key="user" value="" />
    <add key="key" value="" />
    <add key="server" value="hub-cloud.browserstack.com" />
</appSettings>

<capabilities>
    <parallel>
        <add key="build" value="Build 1.0" />
        <add key="name" value="parallel_test" />
        <add key="browserstack.debug" value="true" />
    </parallel>
</capabilities>

<environments>
    <chrome>
        <add key="browser" value="Chrome" />
        <add key="os_version" value="10" />
        <add key="os" value="Windows" />
        <add key="browser_version" value="latest" />
        <add key="browserstack.local" value="true" />
        <add key="browserstack.selenium_version" value="3.14.0" />
        <add key="browserstack.user" value="" />
        <add key="browserstack.key" value="" />
    </chrome>
    <firefox>
        <add key="browser" value="Firefox" />
        <add key="os_version" value="10" />
        <add key="os" value="Windows" />
        <add key="browser_version" value="latest" />
        <add key="browserstack.local" value="true" />
        <add key="browserstack.selenium_version" value="3.10.0" />
        <add key="browserstack.user" value="" />
        <add key="browserstack.key" value="" />
        </firefox>
        <edge>
        <add key="browser" value="Edge" />
        <add key="os_version" value="10" />
        <add key="os" value="Windows" />
        <add key="browser_version" value="latest" />
        <add key="browserstack.local" value="true" />
        <add key="browserstack.selenium_version" value="3.5.2" />
        <add key="browserstack.user" value="" />
        <add key="browserstack.key" value="" />
    </edge>
  </environments>
</configuration>

测试初始化​​类:

[OneTimeSetUp]
public void Init()
{
    NameValueCollection caps = ConfigurationManager.GetSection("capabilities/" + profile) as NameValueCollection; //Returns Null
    NameValueCollection settings = ConfigurationManager.GetSection("environments/" + environment) as NameValueCollection; //Returns Null

    DesiredCapabilities capability = new DesiredCapabilities();

    foreach (string key in caps.AllKeys) //<--System.NullReferenceException: 'Object reference not set to an instance of an object. caps was null.'

    ...
}

我不知道这是否可能是我的 app.config 文件所在位置的结构问题,如果这甚至很重要。所以,这是我的文件夹结构:

在此处输入图像描述

标签: c#.netseleniumapp-configbrowserstack

解决方案


推荐阅读