void exec(TestData testData, TestLogger.TestLogger log, bool summary = true)//load dll file, and let the dll file run the test, write the log { changename(testData); try { Assembly assem = Assembly.LoadFrom(testData.repo + testData.testDriver); Type[] type = assem.GetExportedTypes(); foreach (Type t in type) { if (t.IsClass && typeof(ITestInterface).IsAssignableFrom(t)) { ITestInterface tdr = (ITestInterface)Activator.CreateInstance(t); // create instance of test driver foreach (string lib in testData.testCode) { log.writeLine("test library is " + lib); Console.WriteLine(tdr.getLog()); Console.WriteLine("--------this is for requirement 5-------\r\n Calling ITestInterface Test()");//this is just for demo if (tdr.Test() == true) { log.writeLine("Test result : pass"); Console.WriteLine(" test() return true"); } else { log.writeLine("Test result : fail"); Console.WriteLine(" test() return false"); summary = false; } } } } if (summary == true) { log.writeLine("Summary : pass\r\n\r\n\r\n"); } else { log.writeLine("Summary : fail\r\n\r\n\r\n"); } } catch (Exception ex) { Console.WriteLine(" catch error");//this is just for demo use log.writeLine("error: " + ex.Message); log.writeLine("time: " + DateTime.Now); log.writeLine("Summary : not execuatable\r\n\r\n\r\n"); } }