2017-06-01 7 views
0

データベースにアクセスするXUnitを使用して統合テストを行っています。 app.configファイルからデータベース接続文字列を取得できる必要があります。CUDEビルドスクリプト:XUnit統合テスト実行時のエラー - ConfigurationManager.ConnectionStrings ["FlexConnString"]を取得できません

IDEからテストを実行すると、正常に動作し、接続文字列が見つかります。私はcake.buildから自動的にテストを実行すると ConfigurationManager.ConnectionStringsは、[ "blahblah"]これはFlexConnStringの設定を返さないCONFIGMANAGERを出力ケーキタスクがある

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" 
     }); 
}); 

var connectionStringSettings = ConfigurationManager.ConnectionStrings["FlexConnString"]; 
if (connectionStringSettings == null) 
    { 
     Console.WriteLine("ConfigManager does not return a setting for FlexConnString"); 
     _connectionString = "No Connection string"; 
    } 

をRET 'は、PowerShellからbuild.cakeを実行しています。

これがXUnitの問題であるかケーキの問題であるかわかりません。

+0

診断の冗長性を備えたケーキを起動すると、より多くのロギングとxunitの起動に使用されるコマンドラインが得られます。下記の質問 の詳細については、https://stackoverflow.com/questions/38658660/how-to-enable-diagnostic-verbosity-for-cakeを参照してください。 – devlead

答えて

1

あなたはそれが現在の作業ディレクトリに設定ファイルを探しますxUnitのテストを実行しているとき、あなたは簡単にそれを

Information("Current Directory: {0}", System.IO.Directory.GetCurrentDirectory()); 

を確認することができますし、それを見つけることができない、あなたがフォルダにXUnit2SettingsWorkingDirectoryを指定する必要があります接続文字列の設定ファイルと

XUnit2(testDir, 
    new XUnit2Settings { 
     Parallelism = ParallelismOption.All, 
     HtmlReport = true, 
     NoAppDomain = true, 
     NUnitReport = true, 
     XmlReport = true, 
     ReportName = "MixTdiIntegrationTestResults", 
     OutputDirectory = "./artifacts", 
     WorkingDirectory = "[your config file path]" 
    }); 

別のオプションを言及する必要があなたの現在の作業ディレクトリに

を変更することです
関連する問題