Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 蛋糕构建脚本:运行XUnit集成测试时出错-无法获取ConfigurationManager.ConnectionString[";FlexConnString";]_C#_Integration Testing_Xunit_Cakebuild - Fatal编程技术网

C# 蛋糕构建脚本:运行XUnit集成测试时出错-无法获取ConfigurationManager.ConnectionString[";FlexConnString";]

C# 蛋糕构建脚本:运行XUnit集成测试时出错-无法获取ConfigurationManager.ConnectionString[";FlexConnString";],c#,integration-testing,xunit,cakebuild,C#,Integration Testing,Xunit,Cakebuild,我有一个使用XUnit访问数据库的集成测试。我们需要能够从app.config文件中获取数据库连接字符串 当从IDE运行测试时,它工作得很好,并且找到了连接字符串。 当我从cake.build中自动运行测试时,ConfigurationManager.ConnectionString[“blahblah”]ret 蛋糕的任务是 Task("Run-Integration-Tests") .IsDependentOn("Run-Unit-Tests") .Does(() => { v

我有一个使用XUnit访问数据库的集成测试。我们需要能够从app.config文件中获取数据库连接字符串

当从IDE运行测试时,它工作得很好,并且找到了连接字符串。 当我从cake.build中自动运行测试时,ConfigurationManager.ConnectionString[“blahblah”]ret

蛋糕的任务是

Task("Run-Integration-Tests")
.IsDependentOn("Run-Unit-Tests")
.Does(() =>
{
    var testDir = "./artifacts/_tests/**/*.IntegrationTests.dll";
    Information("Start Running Integration Tests in " + testDir);
    XUnit2(testDir,
        new XUnit2Settings {
            Parallelism = ParallelismOption.All,
            HtmlReport = true,
            NoAppDomain = true,
            NUnitReport = true,
            XmlReport = true,
            ReportName = "MixTdiIntegrationTestResults",
            OutputDirectory = "./artifacts"
       });
});
从powershell运行build.cake时,此输出ConfigManager不会返回FlexConnString的设置


我不确定这是XUnit问题还是Cake问题。

当您运行XUnit测试时,它会在当前工作目录中查找配置文件,您可以轻松地检查它

Information("Current Directory: {0}", System.IO.Directory.GetCurrentDirectory());
并且找不到,您需要在to文件夹中指定连接字符串配置文件

XUnit2(testDir,
    new XUnit2Settings {
        Parallelism = ParallelismOption.All,
        HtmlReport = true,
        NoAppDomain = true,
        NUnitReport = true,
        XmlReport = true,
        ReportName = "MixTdiIntegrationTestResults",
        OutputDirectory = "./artifacts",
        WorkingDirectory = "[your config file path]"
   });
需要提及的另一个选项是更改当前的工作目录

Environment.CurrentDirectory = "c:/";

当您运行Xunit测试时,它会在当前工作目录中查找配置文件,您可以轻松地检查它

Information("Current Directory: {0}", System.IO.Directory.GetCurrentDirectory());
并且找不到,您需要在to文件夹中指定连接字符串配置文件

XUnit2(testDir,
    new XUnit2Settings {
        Parallelism = ParallelismOption.All,
        HtmlReport = true,
        NoAppDomain = true,
        NUnitReport = true,
        XmlReport = true,
        ReportName = "MixTdiIntegrationTestResults",
        OutputDirectory = "./artifacts",
        WorkingDirectory = "[your config file path]"
   });
需要提及的另一个选项是更改当前的工作目录

Environment.CurrentDirectory = "c:/";

如果使用诊断详细性启动cake,您将获得更多日志记录和用于启动xunit的命令行。您可以在下面的问题中了解更多信息,如果使用诊断详细性启动cake,您将获得更多日志记录和用于启动xunit的命令行。你可以在下面的问题中阅读更多关于这不起作用的内容。配置文件在输出目录中,环境。Currentdirectory报告了正确的文件夹,
XUnit2Settings
中的工作目录是正确的。对于我来说,修复方法是将ShadowCopy设置为false(它总是血腥的ShadowCopy!)
ShadowCopy=false
这不起作用。配置文件在输出目录中,环境。Currentdirectory报告了正确的文件夹,
XUnit2Settings
中的工作目录是正确的。对于我来说,修复方法是将ShadowCopy设置为false(它总是带血的卷影副本!)
ShadowCopy=false