2017-01-03 11 views
0

下図のように私は、TFS 2015のアップデート2でリリース定義を作成しました:"Functional Testsの実行"タスクとSpecflow - App.configが無視されていますか?

RunFunc

私はCIプロセスの一部としてこれを使用したいです。ビルドと単体テストは、チェックインごとに専用のBizTalkビルドサーバーで実行されます。夜間に実行されるこの(現在問題のある)リリースは、 "DevTest" BizTalkサーバーに展開して統合テストを実行する必要があります。

最後の "機能テストの実行"タスクまではすべて問題ありません。したがって、BizTalkアプリケーションは削除され、正しい順序でターゲットサーバーに展開されます。 "IntegrationTests"アセンブリには、Transmockフレームワーク(http://transmock.codeplex.com/)を使用するいくつかのSpecflowテストが含まれています。これらのテストの手順は、「Common.Commponents」というアセンブリに含まれています。これは、 "Finance.IntegrationTests.dll"という名前のテストアセンブリから参照されます。テストはDev VM上で実行されたときに合格します。下図のように、私はMSTESTを使用するには、私のテストプロジェクトのApp.configファイルを設定している

Test method Finance.IntegrationTests.ASC_BacsFeature.BacsFileMoved threw exception: NUnit.Framework.InconclusiveException: No matching step definition found for one or more steps.using System;using TechTalk.SpecFlow;namespace MyNamespace{ [Binding] public class StepDefinitions { [Given(@"an output path specified by sso app '(.)' and setting '(.)'")]public void GivenAnOutputPathSpecifiedBySsoAppAndSetting(string p0, string p1){ ScenarioContext.Current.Pending();} [Given(@"the inpu

:「機能テストを実行する」タスクによって実行された場合しかし、私は次のエラーを取得する

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> 
    </configSections> 
    <specFlow> 
    <!-- For additional details on SpecFlow configuration options see http://go.specflow.org/doc-config --> 
    <unitTestProvider name="MsTest"/> 
    <stepAssemblies> 
     <stepAssembly assembly="LCC.Integration.Common.Components" /> 
    </stepAssemblies> 
    </specFlow> 
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration> 

テストがリモートで実行されると、MSTestではなくNUnitが使用されるようです。

「Common.Components.dll」は、GacUtil/Iを介してリリース前のGACに正常にデプロイされているため、なぜそれが見つからないのかわかりません。

リモートサーバーで直接テストを実行しようとしました。私はRDPを実行した後、コマンドウィンドウを開き、 "vstest.console Finance.IntegrationTests.dll"を実行しました。私はテスト入力ファイルが見つからなかったという警告を受け、「ファイルまたはアセンブリを読み込めませんでした.'nunit.framework '」というエラーが発生しました。

私はテストがリモートで実行されているときに、統合テストアセンブリのApp.configが使用されていないと思います。これは、MSTestではなくNUnitを使用しようとする理由と、その場所がノードで指定されているため、一般的な手順にバインドできない理由を説明しています。

リモートでテストするときにApp.configを使用する方法を知っている人はいますか?

+0

Common.Components.dllをどのようにGACに導入しますか?ターゲットテストマシン/サーバ(DevTest)で手動でテストを実行するとどうなりますか? –

+0

質問 –

+0

の編集を参照してください。SpecFlowプロジェクトのSpecFlow.NuitとSpecFlow.MsTestパッケージの両方をインストールすることはできません。どちらか一方のみで、テストはSepcFlow.MsTestパッケージのRun Functional Testによってうまく動作します。どのようにそれらの両方を使用していますか? OneDriveでその問題を再現できる簡単なプロジェクトを共有できますか? –

答えて

0

いくつかの問題がありました。私はapp.configがfinance.integrationtests.dll.configにコンパイルされることを忘れていました。 config内のdllへの参照は、名前だけでなく完全な強力な名前を持つ必要がありました。

関連する問題