dimanche 3 mai 2015

TestContext is null when running test from a Windows Form

I have an issue related to running CodedUITests from a Windows Form. (it works in the CodedUITestProject with Test-Explorer).

This is my CodedUITest's structure :

 [CodedUITest]
    public class DBTest
    {
        #region Static Fields
        public static CSVReader csvReader;
        #endregion

        #region Fields
        public string logFileName;
        public string timer = String.Empty;
        public  TestRead testRead;
        public  UploadResults uploadResults;
        private DateTime testStart;
        #endregion

   [ClassInitialize]
    public static void MyTestInitialize(TestContext test)
    {

        csvReader = new CSVReader();
        csvReader.LoadTestValues("steam.csv");

    }

    [TestInitialize]
    public void testInit()
    {

        testStart = DateTime.Now;
    }


    [TestMethod]
    public void readTest()
    {
        TestRead tst = new TestRead();
        SteamMap a = new SteamMap();

        tst.Read(a,testContextInstance);
    }



    [TestMethod(), TestCategory("Reflection"), TestCategory("DataDriven"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", @"|DataDirectory|\CSV's\steam.csv", "steam#csv", DataAccessMethod.Sequential), DeploymentItem(@"..\..\CSV's\steam.csv")]
    public void steamAccess()
    {
        testRead = new TestRead();
        SteamMap a = new SteamMap();

        testRead.Read(a, TestContext);

    }  [TestCleanup]
    public void TestCleanup()
    {
        uploadResults = new UploadResults();
        //timer for each test ( in seconds )
        double diffSecs = (DateTime.Now - testStart).TotalSeconds;

        uploadResults.TestUpload(testRead.TestResults, csvReader.DataTable, diffSecs,TestContext);
    }

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

This runs perfectly from VS's Test Explorer, testContextInitialize variable gets initialized. In the same Solution I've added a second project, a simple Windows Form application, added a reference to my DLL ( from References) which runs the following code :

            Playback.Initialize();
            DBTest a = new DBTest();
            a.steamAccess();
            Playback.Cleanup();

NullReferenceException occurs, my testContex is null when I run my test from outside it's assembly. I need some help in this matter, Thanks

Aucun commentaire:

Enregistrer un commentaire