我有一个2010 Coded UI测试,可以针对网站执行某些操作。我能够将数据源添加到“测试方法”中,该方法每个记录循环一次整个方法。
但是,我真正想做的只是循环测试的一部分,这只是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 :(得分:0)
您必须使用ClassInitialize和ClassCleanup方法。您可以将其放在底部的 #region附加测试属性区域中。所以对你来说它看起来像是:
#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
答案 1 :(得分:0)
首先你必须在codedUI类中定义一个新的UIMap
[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();
}
}
}