Я бы предложил использовать расширение qaf TestNG , которое отвечает за управление драйверами, управление ресурсами и многое другое для автоматизации функциональных тестов веб, мобильных и веб-сервисов. С qaf ваш тестовый класс может выглядеть следующим образом:
public class NewTest extends WebDriverTestCase{
@Test()
public void method1() {
getDriver().get("https://www.google.com");
getDriver().findElement(By.name("q")).sendKeys("parallel");
getDriver().findElement(By.name("q")).sendKeys(Keys.ENTER);
}
@Test()
public void method2() {
getDriver().get("https://www.google.com");
//another improved way
WebElement ele = getDriver().findElement(By.name("q"));
ele.sendKeys("methods");
ele.sendKeys.submit();
}
@Test()
public void method3() {
getDriver().get("https://www.google.com");
//another way with qaf
WebElement ele = $("name=q");
ele.sendKeys("testng");
ele.sendKeys.submit();
}
}
Более того, вы можете сделать тестирование управляемым данными с использованием встроенных поставщиков данных.
Если вы используете класс ProcessStartInfo
, вы можете установить стиль окна как скрытый - в случае консольных (не GUI) приложений вы должны установить CreateNoWindow на true
:
System.Diagnostics.ProcessStartInfo start =
new System.Diagnostics.ProcessStartInfo();
start.FileName = dir + @"\Myprocesstostart.exe";
start.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //Hides GUI
start.CreateNoWindow = true; //Hides console
Если вы написали консольное приложение, вы можете сделать его скрытым по умолчанию.
Создайте новое консольное приложение, а затем измените тип «Тип вывода» на «Приложение Windows» (сделано в свойства проекта)
Если вы создаете программу, не требующую ввода данных пользователем, вы всегда можете просто создать ее как сервис. Сервис не будет отображать никакой интерфейс.
Если вы используете класс процесса, вы можете написать
yourprocess.StartInfo.UseShellExecute = false;
yourprocess.StartInfo.CreateNoWindow = true;
перед yourprocess.start ();
, и процесс будет скрыт
Вы можете использовать FreeConsole API, чтобы отключить консоль от процесса:
[DllImport("kernel32.dll")]
static extern bool FreeConsole();
(конечно, это применимо, только если у вас есть доступ к исходному коду консольного приложения)
Я знаю, что отвечаю не совсем то, что вы хотите, но мне интересно, правильный ли вы вопрос задаете.
Почему не отвечаете? Если вы не используете:
Это звучит лучше, если все, что вам нужно, это запустить процесс.