Im mit Xamarin 6.0.1, Mono 4.4.1 und 3.4.1 NUnit auf OSX eine Klassenbibliothek Klasse auszuführen, die eine Befehlszeilenargument läuftLaufbefehlszeilenargumente in NUnit Mono
"die ios-deploy" . Direkt am Terminal diese zurückgibt: "/ usr/local/bin/ios-deploy"
Wie auch immer, in meiner Anwendung, gibt der Befehl "/ usr/bin/die"
Irgendwelche Ideen, wie Ich kann die Anwendung zurückgeben, was das Terminal zurückgibt?
Siehe meinen Code unten, danke für Ihre Gedanken.
public class ProcesRunner
{
public string getProcess()
{
ProcessStartInfo p = new ProcessStartInfo("/usr/bin/which", "which ios-deploy");
p.CreateNoWindow = true;
p.RedirectStandardOutput = true;
p.RedirectStandardError = true;
p.UseShellExecute = false;
Process pg = new Process();
pg.StartInfo = p;
pg.Start();
string strOutput = pg.StandardOutput.ReadToEnd();
string strError = pg.StandardError.ReadToEnd();
Console.WriteLine(strError);
pg.WaitForExit();
return strOutput;
}
}
Einheit Test
[TestFixture()]
public class Test
{
[Test()]
public void TestCase()
{
ProcesRunner pr = new ProcesRunner();
string outvar = pr.getProcess();
Console.WriteLine(outvar);
}
}
Leider funktioniert es nicht, im Debug-Modus ist strOutput leer. Danke für den Vorschlag. – mogoli
@mogoli Seltsam, dein Code mit meiner Änderung funktioniert für mich ....Verursacht '/ bin/bash -c 'welche ios-deploy' auf der cmd-Zeile den vollständigen Pfad von iOS-deploy nicht zurück? – SushiHangover
Seltsamerweise, darf ich fragen, welche Version von Xamarin, Nunit und Mono Sie verwenden? Der Befehl funktioniert direkt am Terminal. – mogoli