static void Main(string[] args) { TestArguments arguments = new TestArguments(args); if (arguments.HaveAdditionalPath) { ProcessStartInfo info = new ProcessStartInfo( new FileInfo(Assembly.GetEntryAssembly().Location).FullName, arguments.StrippedArgs() ); info.UseShellExecute = false; info.EnvironmentVariables["PATH"] = arguments.AdditionalPath + ";" + info.EnvironmentVariables["PATH"]; info.EnvironmentVariables["LD_LIBRARY_PATH"] = arguments.AdditionalPath + ":" + info.EnvironmentVariables["LD_LIBRARY_PATH"]; info.EnvironmentVariables["DYLD_LIBRARY_PATH"] = arguments.AdditionalPath + ":" + info.EnvironmentVariables["DYLD_LIBRARY_PATH"]; Process.Start(info); return; } Console.WriteLine("LibSBML C# Testrunner"); Console.WriteLine("====================="); if (!arguments.IsValid) { // for backwards compatibility if (args.Length == 1 ) { arguments = new TestArguments(); arguments.TestDataDirectory = args[0]; } else if (args.Length == 3) { arguments = new TestArguments(); arguments.TestDirectory = args[0]; arguments.TestDataDirectory = args[1]; arguments.ManagedLibrary = args[2]; } if (!arguments.IsValid) { PrintUsageAndExit(); } } if (arguments.HaveWorkingDirectory) Directory.SetCurrentDirectory(arguments.WorkingDirectory); if (File.Exists(arguments.ManagedLibrary)) AppDomain.CurrentDomain.AssemblyResolve += delegate(object s, ResolveEventArgs e) { string filename = new AssemblyName(e.Name).Name; string path = string.Format(@"{0}.dll", Path.Combine(new FileInfo(arguments.ManagedLibrary).DirectoryName, filename)); return Assembly.LoadFrom(path); }; if (arguments.UseCompiledTests) { RunTestsInNamespace(arguments); } else { CompileAndRunTests(arguments); } if (arguments.HaveAdditionalDirectories) { Console.WriteLine(); Console.WriteLine("AdditionalTests"); Console.WriteLine("==============="); Console.WriteLine(); foreach (string path in arguments.AdditionalTestDirectories) { Console.WriteLine("running tests from: " + path); Console.WriteLine(); RunTests(arguments.ManagedLibrary, path, arguments.TestDataDirectory); Console.WriteLine(); } } }
static void Main(string[] args) { TestArguments arguments = new TestArguments(args); if (arguments.HaveAdditionalPath) { ProcessStartInfo info = new ProcessStartInfo( new FileInfo(Assembly.GetEntryAssembly().Location).FullName, arguments.StrippedArgs() ); info.UseShellExecute = false; info.EnvironmentVariables["PATH"] = arguments.AdditionalPath + ";" + info.EnvironmentVariables["PATH"]; info.EnvironmentVariables["LD_LIBRARY_PATH"] = arguments.AdditionalPath + ":" + info.EnvironmentVariables["LD_LIBRARY_PATH"]; info.EnvironmentVariables["DYLD_LIBRARY_PATH"] = arguments.AdditionalPath + ":" + info.EnvironmentVariables["DYLD_LIBRARY_PATH"]; Process.Start(info); return; } Console.WriteLine("LibSBML C# Testrunner"); Console.WriteLine("====================="); if (!arguments.IsValid) { // for backwards compatibility if (args.Length == 1) { arguments = new TestArguments(); arguments.TestDataDirectory = args[0]; } else if (args.Length == 3) { arguments = new TestArguments(); arguments.TestDirectory = args[0]; arguments.TestDataDirectory = args[1]; arguments.ManagedLibrary = args[2]; } if (!arguments.IsValid) { PrintUsageAndExit(); } } if (arguments.HaveWorkingDirectory) { Directory.SetCurrentDirectory(arguments.WorkingDirectory); } if (File.Exists(arguments.ManagedLibrary)) { AppDomain.CurrentDomain.AssemblyResolve += delegate(object s, ResolveEventArgs e) { string filename = new AssemblyName(e.Name).Name; string path = string.Format(@"{0}.dll", Path.Combine(new FileInfo(arguments.ManagedLibrary).DirectoryName, filename)); return(Assembly.LoadFrom(path)); } } ; if (arguments.UseCompiledTests) { RunTestsInNamespace(arguments); } else { CompileAndRunTests(arguments); } if (arguments.HaveAdditionalDirectories) { Console.WriteLine(); Console.WriteLine("AdditionalTests"); Console.WriteLine("==============="); Console.WriteLine(); foreach (string path in arguments.AdditionalTestDirectories) { Console.WriteLine("running tests from: " + path); Console.WriteLine(); RunTests(arguments.ManagedLibrary, path, arguments.TestDataDirectory); Console.WriteLine(); } } }