2017-11-04 12 views
0

IVEは(XUnitを使用して)SmtpClientをテストするためにいくつかの統合テストを作成しました。基本的に私は私のapp.configメールメッセージを保存するには - チームサービス

configuration> 
    <system.net> 
     <mailSettings> 
      <smtp deliveryMethod="SpecifiedPickupDirectory"> 
       <specifiedPickupDirectory pickupDirectoryLocation="F:\EmailTests\"/> 
      </smtp> 
     </mailSettings> 
    </system.net> 
</configuration> 

今、明らかに、このテストの中でそれをオーバーライドしていますと、チームサービスに障害が発生したため、次のREFの:

E:\ EmailTests

また、このオーバーライドのdoesn相対パスを除いて。

ビルド中にデータを保存する必要があるTFSで、これらのシナリオをどのように処理する必要がありますか?

+1

ファイルシステムなどの外部リソースとやりとりする場合は、単体テストではありません。 –

+0

それを統合テストと呼ぼうとします。 – garfbradaz

答えて

2

Copy LocalプロパティをTrueに設定して、EmailTestsフォルダをVisual Studioでユニットテストプロジェクトの一部にする必要があります。そうすることで二つのオプションを提供します:フォルダはすでにあなたのコードベースの一部である

  1. ので、それはビルドを開始する前に、VSOによってチェックアウトされます。次に、ビルドタスクの1つでアクセスする必要がある場合は、定義済みのビルド変数Build.SourcesDirectoryを使用して、以下のようにフォルダ名と組み合わせることができます。設定ファイル内でこれを使用して、ハードコードF:\EmailTests\を置き換えることもできます。

    $(Build.SourcesDirectory)\EmailTests\ 
    
  2. また、あなたはまだ別のVSO事前に定義された変数Build.BinariesDirectoryを使用してこのフォルダにアクセスすることができます。ただし、単体テストプロジェクトのビルドが完了した場合にのみ有効です。

類似の問題のすべての定義済みVSO変数のリンクです。

+0

開発中に別のディレクトリを使用するため、これは私にとってはうまくいっており、ビルド中に私のapp.configを変換する正しい方向に私を指摘しました。ビルド前の次のPSスクリプトタスク。 https://gist.github.com/garfbradaz/54645abe0e6005fb43943ac9ba99c9ad – garfbradaz

関連する問題