C# 蛋糕构建脚本:运行XUnit集成测试时出错-无法获取ConfigurationManager.ConnectionString[";FlexConnString";]
我有一个使用XUnit访问数据库的集成测试。我们需要能够从app.config文件中获取数据库连接字符串 当从IDE运行测试时,它工作得很好,并且找到了连接字符串。 当我从cake.build中自动运行测试时,ConfigurationManager.ConnectionString[“blahblah”]ret 蛋糕的任务是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
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