2016-09-14 6 views
1

コンソールアプリケーションからデータ駆動型コード化UIテストを実行する必要があります。コード化UIテストをスタンドアロンとして実行すると、[DataSource]はCSVファイルの値にアクセスできます。一方、コンソールアプリケーションからCoded UIを呼び出すと、処理されない例外が発生します。System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 TestContext.DataRowがnullであるためです。コンソールアプリケーションからデータ駆動型コード化uiを実行する

ここでコード

のProgram.cs(コンソールアプリ)からの抜粋です:

public class Program 
{ 
    static void Main(string[] args) 
    { 
     Playback.Initialize(); 
     CodedUITestWarmup test = new CodedUITestWarmup(); 
     test.WarmUp(); 
     Playback.Cleanup(); 
    } 
} 

CodedUITestWarmup.cs(コード化されたUIテスト):

public class CodedUITestWarmup 
{ 
    [TestMethod]  
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", @"|DataDirectory|\DataFiles\warmup.csv", "warmup#csv", DataAccessMethod.Sequential)] 
    public void WarmUp() 
    { 
     InitializeVendorTest(); 
     ... 
    } 

    private void InitializeVendorTest() 
    {  
     caseV = new CaseVariables(TestContext); 
     ... 
    }  
} 

class CaseVariables 
{ 
    public string lastNameID; 
    ... 

    public CaseVariables(TestContext TestContext) 
    { 
     lastNameID = TestContext.DataRow["lastNameID"].ToString(); 
     ... 
    } 
} 

あなたには、いくつかの入力を提供してもらえますが、この点で何ができますか?

+0

は、CSVファイルを持っていますが、 '指名手配として' TestContext.DeploymentDirectory'ディレクトリに展開されて。 'TestContext.DeploymentDirectory'の内容は、成功した実行と失敗した実行の両方で調べるべきです。 – AdrianHHH

答えて

0

vstestconsole.exeを使用せずにVisual Studioからcodded ui testを実行することはできません。

パラメータ(テストDLLへのパス)を使用してvstestconsole.exeを試すことができます 例: C:\プログラムファイル(x86の)\マイクロソフトのVisual Studio行う理由のDLLファイルは、それぞれの間に作成されます

vstestconsole.exe 11.0 \ Common7 \ IDE \ CommonExtensions \マイクロソフト\ TestWindow \はcodeduiテストプロジェクト

0

を構築コンソールアプリケーションからテストを実行する必要がありますか? vstestconsole.exeまたはmstest.exeのいずれかを使用できます。

vstestconsoleは、MStestを置き換えるコマンドラインツールです。しかし、この場合、私はそれらのいずれかがあなたが望むワットをすることができます!

コード化されたUIテストまたは単体テストは、TestContextを初期化しなければならず、テストエンジンがそれを行う責任があります。そのため、例外が発生します。

mstest実行可能ファイルは "c:¥Program Files(x86)¥Microsoft Visual Studio 12.0¥Common7¥IDE"です。 コマンドプロンプトを起動して、mstest.exeフォルダに移動します1 abouve)と、次のようなコマンドを使用します| DataDirectoryの| `` DataSource`属性の一部

mstest.exe /testcontainer:"c:/TestFolder/testassembly.dll" /test:"TestNamespace.MyTestToExecute_TestMethod1" 
関連する問題