public void Error()
		{
			string path = "xyz";
			string parameters = "pdq";
			var sut = new ProcessRunner();
			using (StringWriter standardOutputWriter = new StringWriter())
			using (StringWriter errorOutputWriter = new StringWriter())
			{
				sut.Run(path, parameters, standardOutputWriter, errorOutputWriter);

				string standardOutput = standardOutputWriter.GetStringBuilder().ToString();
				Assert.IsNullOrEmpty(standardOutput);

				string errorOutput = errorOutputWriter.GetStringBuilder().ToString();
				Assert.IsNotNullOrEmpty(errorOutput);
			}
		}
		public void Success()
		{
			string path = "C:\\windows\\system32\\tasklist.exe";
			string parameters = "/v";
			var sut = new ProcessRunner();
			using(StringWriter standardOutputWriter = new StringWriter())
			using(StringWriter errorOutputWriter = new StringWriter())
			{
				sut.Run(path, parameters, standardOutputWriter, errorOutputWriter);

				string standardOutput = standardOutputWriter.GetStringBuilder().ToString();
				Assert.IsNotNullOrEmpty(standardOutput);

				string errorOutput = errorOutputWriter.GetStringBuilder().ToString();
				Assert.IsNullOrEmpty(errorOutput.Trim());
			}
		}
 public static ISqlConnectionInfo GetSqlConnectionInfo()
 {
     lock(_locker)
     {
         if(!_isLoaded)
         {
             string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
             string roundhousePath = Path.Combine(directory, "rh.exe");
             var connectionString = ConfigurationManager.ConnectionStrings["SrirachaSql"];
             if(connectionString == null || string.IsNullOrEmpty(connectionString.ConnectionString))
             {
                 throw new Exception("Missing connection string SrirachaSql");
             }
             string scriptRelativePath = AppSettingsHelper.GetRequiredSetting("ScriptRelativePath");
             string scriptDirectory;
             if(NCrunch.Framework.NCrunchEnvironment.NCrunchIsResident())
             {
                 scriptDirectory = Path.Combine(Path.GetDirectoryName(NCrunch.Framework.NCrunchEnvironment.GetOriginalProjectPath()), scriptRelativePath);
             }
             else 
             {
                 scriptDirectory = Path.GetFullPath(scriptRelativePath);
                 if (!Directory.Exists(scriptDirectory))
                 {
                     scriptDirectory = Path.GetFullPath(Path.Combine("..", scriptRelativePath));
                 }
                 if (!Directory.Exists(scriptDirectory))
                 {
                     scriptDirectory = Path.GetFullPath(Path.Combine("..", "..", scriptRelativePath));
                 }
             }
             if(!Directory.Exists(scriptDirectory))
             {
                 throw new Exception("Script directory not found: " + scriptDirectory);
             }
             string parameters = string.Format("--connstring \"{0}\" --files=\"{1}\" --silent", connectionString.ConnectionString, scriptDirectory);
             var processRunner = new ProcessRunner();
             var outputWriter = new StringWriter();
             var errorWriter = new StringWriter();
             int exitCode = processRunner.Run(roundhousePath, parameters, outputWriter, errorWriter);
             _isLoaded = true;
         }
         return new SqlConnectionInfo();
     }
 }