APIにログインする機能をテストしようとしています。当然、私は自分のユーザー名とパスワードにアクセスするためのテストクラスが必要です。しかし、私はこのプロジェクトを公開ソース管理に入れたいので、私のユーザ名とパスワードをコードで共有することはできません(想像してみてください)。 .userファイルに保存されているので、コマンドライン引数を使用します(他のユーザーのためにプロジェクトを中断することなくソース管理から外すことができます)。しかし、それらは実際にテストクラスに渡されるようではありません(少なくとも、私がEnvironment.GetCommandLineArgs()
を使用するとき、私はそれらを見ません)。どうすれば他のユーザーのためにプロジェクトを中断することなくローカルにパスワードを保存できますか?方法はありますか?次のようにVisual Studioソース管理のパスワードを避けるためのユニットテストとコマンドライン引数
5
A
答えて
6
で行うための一般的な方法は次のとおりです。
- だけで実際の値なしで、あなたがこれらの事を保存したいファイルと同じ内容で、プロジェクトにテンプレートファイルを追加します。その場所に空白またはダミーの値を置きます。
- このテンプレートファイルをソースコントロールに追加
- ソースコントロールから実際の値を含む必要があるファイルを削除し、このファイルの今後のコピーを無視するように依頼します。 を実行しないでください。ただし、プロジェクトから削除してください。
このようなコマンドが含まれている事前ビルドビルドイベントを追加します。
IF NOT EXIST "$(ProjectDir)\App.config" COPY "$(ProjectDir)\App-template.config" "$(ProjectDir)\App.config"
これは今このような効果があります。
- 設定ファイルのテンプレートがソースになりましたなし機密情報
- プロジェクトの新しいコピーをクローンまたはチェックアウトすると、実際のファイルwh実際にファイルが存在するかどうかを効果的にチェックして、上記のコマンドを実行します。テンプレートファイルから新しいコピーをコピーします。
- 新しく作成された実際のファイルを編集し、機密情報を追加します。
- この方法が機能するためにそれはあなたがディスク上に、あるいは中に存在しているファイルを無視するようにソース管理ツールを頼むことができることが不可欠である
- 実行ユニット・テストやプログラム
別のビルドを行いますプロジェクト自体を変更した後でコミットに自動的に追加しないようにプロジェクト自体を作成します。
1
機密情報(パスワード)を別の "SensitiveInfo.config"ファイルに入れます。
<?xml version="1.0" encoding="utf-8"?> <appSettings> <add key="SecretPassword" value="87DFG8S7G9S8G98SDFGHSDFG978DA" /> </appSettings>
設定
Sensitive.info
"コピーは、常に"があなたの "App.configファイル" でこれを追加するには、 "出力ディレクトリにコピー":
<appSettings file="SensitiveInfo.config"/>
は「 "ingnore" あなたを確認してくださいSensitiveInfo.config "ファイルを.hgignore(Mercurial)または.hgignoreファイルに追加してください。gitignore(Git)
関連する問題
- 1. Visual StudioのSubversionソース管理から抜け出すには?
- 2. ユニットテストの "Simulate"コマンドライン引数
- 3. ソース管理下の製品にVisual Studioリファレンスを追加する
- 4. SQL Server Management Studioの2005とソース管理
- 5. Visual Studio Team Explorerのソース管理コンテキストの切り替え
- 6. のVisual Studio管理者モード
- 7. Visual Studioでのバージョン管理
- 8. 怠け者のためのソース管理システム?
- 9. PHPとソース管理:ユニットテストなどをどこに置くの?
- 10. Perforce Visual Studioがソース管理エラーから開く
- 11. Visual StudioでVisual StudioでSourceSafeを使用しているプロジェクトの個別ソース管理バインド
- 12. Visual Studio 2013 C++フォルダ管理
- 13. Visual Studio 2010とHGでバージョン管理
- 14. Visual Studioでコマンドライン引数を使用しているときにコマンドプロンプトウィンドウをホールド
- 15. ソース管理の履歴バージョンに関する探偵ユニットテスト
- 16. 複数のプロジェクトのソース管理
- 17. バージョン管理でVisual Studio vcprojプロジェクトファイルを維持するための提案
- 18. ユニットテストのためのデータベース依存関係を避けるために
- 19. ソース管理プロバイダとしてVisual SVNを選択する方法
- 20. のVisual Studio 2008のユニットテストとNUnitの
- 21. のVisual Studio 2010のユニットテスト
- 22. Gitユーザーとパスワードの管理
- 23. ユニットテストWCF Visual Studio 2010
- 24. Visual Studioユニットテストのセキュリティ例外
- 25. Visual Studio 2012のC++ユニットテスト
- 26. Visual Studio 2008 Standardのユニットテスト
- 27. MSBuildのVisual Studioのコマンドライン上
- 28. ソース管理の.vcxproj
- 29. .netとvisual Studioで使用するWebベースのバージョン管理システム
- 30. ソース管理へのアクセス
チェックインする前に機密データを消去する設定ファイルはありません。 – DrewJordan
このようなことを処理するには、より良い方法があります。これらの方法のうちの1つについて私の答えを見てください。機密情報を編集する必要があるファイルを用意することは、「災害」のレシピです(この情報がソース管理でどのくらい悪くなっているかによって異なります)。 ** **は忘れられます。 –