2016-03-22 15 views
0

WCFサービスを呼び出すユニットテストをセットアップしようとしています。 NET4.6で実行するクライアントはbasicHttpsBindingを使用します。basicHttpsBindingでユニットテストの実行エラーが発生しました。WCFクライアントを設定できません。

は、ユニットテストのapp.configをにbasicHttpsBindingタグをincludsた(全体でsystem.serviceModelのconfigセクションをコピーした。

私はテスト(xUnitフレーム)を実行すると、クライアントのコンストラクタが実行されるときに、私は次のエラーを取得します。

Exception thrown: 'System.Configuration.ConfigurationErrorsException' in System.Configuration.dll 

Additional information: Configuration binding extension 'system.serviceModel/bindings/basicHttpsBinding' could not be found. 
Verify that this binding extension is properly registered in system.serviceModel/extensions/bindingExtensions and that it is spelled correctly. 

別の答えは、少なくともnet4.5がテストのためにexecutdであることを確認する(以下を追加することを示唆した。

<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/> 
</startup> 

アンyの手がかり?

編集:これはresharper 10 Test Runerでのみ失敗します。 CTRL-R、Tを使用してInBuildランナに対して実行すると、正常に動作します。

私はシャドウコピーを有効/

  • 無効、

    • 力CLR 4.5に、ReSharperの中でいくつかのオプションを試して、自分の のappDomainで
    • 実行しました。

    変更されていません。

  • 答えて

    0

    xunitプラグイン(現在はバージョン2016.1以降のReSharper自体の一部)は、app.configファイルで動作します。もしあなたがlog an issueでしたら理想的にはソリューションを添付してください(私的に行うこともできますので、JetBrainsのスタッフだけが見ることができます)。

    0

    私は、Microsoftのツールで私の同様のWCF順序付けテストが失敗するのと似ていると思われます...単一のテストを実行すると、\ bin \ Debug ...から直接実行されるため動作しますが、テストは失敗します。Microsoftは、QTAgentXXXXX.exeという実行可能なサンドボックスを使用します。

    テストを実行している実行可能ファイルを調べるには、早めにブレークポイントを破棄し、AppDomain.CurrentDomain.SetupInformation(特にTargetFrameworkNameとApplicationNameプロパティに注意してください)をダンプし、System.Diagnostics.Process .GetCurrentProcess()。MainModule.FileVersionInfo:実行可能パスを取得します。 この実行可能ファイルをILSpyにロードし、コンパイルされたフレームワークをチェックアウトすることができます。

    Microsoft QTAgentアプリケーションは、C:¥Program Files(x86)¥Microsoft Visual Studio¥2017¥Professional¥Common7¥IDE¥にあります。使用されている.Net Frameworkや奇妙な検出に応じていくつかの種類が存在するようです彼らが1つを選択するために使用する体系を示しています。 最新のQTAgent32_40.exeが古い4.0フレームワークでコンパイルされていることを確認してから、QTAgent32_40.exe.configとnoがあり、supportedRuntime設定sku = 4.6であれば、それは異なった動作を促すわけではありません(もしあなたがresharper 10 Test Runerの設定を微調整して別の結果を見るかもしれません)。そして、私はassemblyBindingのapplyTo属性を試してみましたが、いくつかのスレッドではあまり役に立たないと言いました。 ILSpyを使用して4.6.2に対してQTAgentの自分のバージョンを再コンパイルしようとしましたが、参照されている多くのMicrosoft.VisualStudio.blah.blahアセンブリには、作成できない内部クラスがたくさんあります。これらのアセンブリには、これらの内部クラスへのアクセスが許可されている外部ライブラリと実行可能ファイルをリストする、InternalsVisibleToという厄介なアセンブリ属性があります。 QTAgentの実行可能ファイルはこれらの属性の1つで、これらのアセンブリから使用できるのはこのためです。したがって、これらの関連するアセンブリをすべて逆コンパイルして単体テストフレームワークを再コンパイルできるかどうかを確認するには、非常に長く深いウサギの穴です。そのような小さな利益のための多くの研究です。私はスクリューマイクロソフトのユニットテストフレームワークと言う。他の問題もあります。私の同僚はNUnitの使用を提案し続けます。私はそれを試すことができると思う。

    関連する問題