2010-11-25 7 views
2

ウェブサイトに対していくつかのアクションを実行する2010コード化UIテストがあります。レコードごとにメソッド全体を1回ループする「テストメソッド」にデータソースを追加できます。テストメソッド(VS 2010コード化UIテスト)の代わりにUIMapメソッドにデータソースを追加する方法

しかし、私が実際にやりたいことは、UIMapの単なる記録されたメソッドであるテストの一部だけをループすることです。

はのは、試験方法は、次のようになりましょう:

//[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\TestCommunities.xml", "Community", DataAccessMethod.Sequential), DeploymentItem("Tests\\WebTests\\DataSources\\TestCommunities.xml"), TestMethod]   
public void LoginCreateCommunities() 
    { 
     this.UIMap.LoginAdmin(); 
     //this.UIMap.CreateCommunityParams.UIItem0EditText = TestContext.DataRow["CommunityName"].ToString(); 
     this.UIMap.CreateCommunity(); 
     this.UIMap.LogoffClose(); 
    } 

それだけUIMap.CreateCommunity(だ)私はループデータソースをしたいということ。 3つのメソッドすべてをデータソース内のレコードごとに実行する必要はありません。これは、データソースをテストメソッド(上記のコメント部分)に添付するとどうなりますか。

ここでやろうとしていることを達成する方法はありますか?

ありがとうございました。

+0

は私が見てみましょう、私はこの別の方法を頼むよ...なし(私は組み込みのCUITマジックを使用したい)、コード化されたUIテストメソッドの部分(コード化されたテストメソッド全体ではない)だけをループすることができます。 – Jeff

答えて

0

ClassInitializeメソッドとClassCleanupメソッドを使用する必要があります。 #regionに追加します。下部の追加のテスト属性エリア。以下のようなので、あなたのためにそれが何かを見てね:あなたはcodedUIクラスに新しいUIMapを定義する必要が最初

#region Additional test attributes 

    [ClassInitialize] 
    static public void ClassInit(TestContext context) 
    { 
     Playback.Initialize(); 
     try 
     { 
      sharedTest.LoginAdmin(); 
     } 
     finally 
     { 
      Playback.Cleanup(); 
     } 

    } 


    [ClassCleanup] 
    static public void ClassCleanup() 
    { 
     Playback.Initialize(); 
     try 
     { 
      sharedTest.LogoffClose(); 
     } 
     finally 
     { 
      Playback.Cleanup(); 
     } 
    } 

    #endregion 
+0

'Playback.Initialize()'と 'Playback.Cleanup()'が何をするのかを親切に説明しますか? 'Initialize'の呼び出しは' IsInitialized'プロパティの条件付きでなければなりませんか?アクションが終了した直後に 'Playback.Cleanup()'が呼び出されるのはなぜですか、テストスイートの最後ではないのですか? –

+1

ここに「sharedTest」とは何ですか? – atiyar

+0

これは古い回答ですが、Playback.Initialize()とPlayback.Cleanup()はテスト自体の前後に実行されます。この場合の 'sharedTest'は私が呼んでいる別のテストメソッドです。私の答えを書いてから、Visual Studio 2012ではなくSelenium WebDriver(C#)を使用しています。これが助けにならない場合は申し訳ありません。 – kgodoy

0

[CodedUITest] 
public class CodedUITest1 
{ 
    static private UIMap sharedTest = new UIMap(); 

    .... 

    [ClassInitialize()] 
    static public void ClassInit(TestContext context) 
    { 
     Playback.Initialize(); 
     try 
     { 
      sharedTest.RecordedStartApp(); 
     } 
     finally 
     { 
      Playback.Cleanup(); 
     } 
    } 

    [ClassCleanup()] 
    static public void ClassCleanup() 
    { 
     Playback.Initialize(); 
     try 
     { 
      sharedTest.RecordedCloseApp(); 
     } 
     finally 
     { 
      Playback.Cleanup(); 
     } 
    } 
} 
関連する問題