2013-04-12 3 views
0
public class portal 
{ 
    public portal() 
    { 
    } 
    [DataSource ("Microsoft.VisualStudio.TestTools.DataSource.TestCase", "http://alm:8080/tfs/....", "15729", DataAccessMethod.Sequential), TestMethod] 

    public static void portalmtm() 
    { 
     BrowserWindow b = BrowserWindow.Launch(new System.Uri(TestContext.DataRow["portals"].ToString())); 
    } 

    public static TestContext TestContext 
    { 
     get 
     { 
      return testContextInstance; 
     } 
     set 
     { 
      testContextInstance = value; 
     } 
    } 
    private static TestContext testContextInstance; 

    } 
} 

Это дает ошибку, когда я использую его в codeduitest (TestMethod) System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. В чем проблема? Что я могу сделать? Спасибо ...Coded UI Тестирование System.NullReferenceException

[TestMethod] 
    public void Test1() 
    {   
     portalmtm(); 
     this.UIMap.... 
     this.UIMap.... 
    } 
    public TestContext TestContext 
    { 
     get 
     { 
      return testContextInstance; 
     } 
     set 
     { 
      testContextInstance = value; 
     } 
    } 
    private TestContext testContextInstance; 
+0

Вы можете проверить http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net –

+2

'TestContext' никогда не инициализируется. –

+0

Я отредактировал код .. –

ответ

1

Класс должен быть украшен атрибутом CodedUITestAttribute.

0

Положите [TestMethod] над методом, подобным этому, и он должен работать. (TestMethod) ничего не значит, вы должны использовать квадратные скобки.

 [TestMethod] 
    public static void portalmtm() 
    { 
     //Code goes here. 
    } 

Кстати, если вы собираетесь использовать любые автоматизированные методы тестирования, я уверен, что он не может быть статичным.