2016-05-31 10 views
2

データベース統合テスト(MSTests)には、MS SQLサーバーでEntity Framework 6を​​使用しています。Visual Studio Team Servicesビルド定義:データベース接続文字列を設定する

私は、Visual Studio Team Services(VSTS)ビルド定義のテストアセンブリのapp.confingにデータベース接続文字列を設定する組み込みの方法を探しています。

これは、ビルド変数やその他のきちんとした組み込みの方法を使って行うことができますか? (より良い方法を見つけることができない)と考え

その他のオプション:

  1. 接続の詳細は、app.configを変換(SlowCheetah)との新しいビルド
  2. 構成を作成得るために* .runsettingsを使用して
+0

オプション2について:私はSlowCheetahが変換を実行する必要はないと信じています。 csprojを手動で編集し、TransformXmlタスクを使用して機能させることができます。ここでは、単純なコードサンプル[TransformXml Web.configの公開中]を見つけました(http:// stackoverflow。com/questions/10316108/transformxml-web-config-while-publishing) – AndrewSilver

答えて

2

Replace Tokensタスクを使用できます。これにより、設定ファイルの文字列をビルド定義の変数に置き換えることができます。

1

一つのアプローチは、あなたが行くことに決める場合は、これらの2つの実装

  1. https://github.com/qetza/vsts-replacetokens-task#readme
  2. https://marketplace.visualstudio.com/items?itemName=ms-devlabs.utilitytasks

のいずれかを使用することができ、トークン化を実現するためにはtokenization

を使用することです最初の実装では、ここにステップがあります

から
  1. 移動し、あなたがあなたのビルドDEFを持っているアカウントに、 "トークンの置き換え" をインストール。

  2. 更新アプリケーションのweb.config

    たconnectionString = "#{MyToken}#ように"

  3. 新しい変数をトークンの名前でビルド定義に追加します。値が保護されていることを確認する

ビルドステップでは、すべての.configファイルトークンがビルド定義に指定された変数値に置き換えられます。かなりきちんとしています。

このタスクが存在しない状態で、ソースコードリポジトリの統合テストが失敗する可能性があることに注意してください。これは一部の人にとっては迷惑なことかもしれませんが、GITを使用していて、トークンをローカルでオーバーライドして統合テストを行う場合は簡単に回避できます。

また、ファイアウォール設定のSQLデータベース(azure)を使用している場合、ビルドエージェントの仮想マシンが承認されていないため、統合テストが失敗する可能性があります。あなたのビルドエージェントが承認されました

関連する問題