Остановка серверов ASP WebDev и Selenium из командной строки - PullRequest
0 голосов
/ 09 июня 2009

Впервые я внедряю тесты Selenium в мою сборку. Я подумал, что для этого в NAnt мне сначала нужно запустить сервер WebDev:

<exec program="path/to/WebDev.WebServer.exe"
   commandline="/port:51150 /path:path/to/website"
   failonerror="true"
   resultproperty="selenium.webdev.server.running"
   spawn="true">
</exec>

Затем запустите сервер Selenium:

<exec program="path/to/java.exe"
   commandline="-jar path/to/selenium-server.jar"
   failonerror="false"
   spawn="true">
</exec>

Тогда запустите мои тесты. Это работает. Что я не могу понять, так это как убить серверы WebDev и Selenium после завершения моих тестов?

Ответы [ 4 ]

2 голосов
/ 06 октября 2009

Вот то, что я делаю локально, но также должно работать удаленно с простым запросом http get:

http://localhost:4444/selenium-server/driver/?cmd=shutDown

или для версий Selenium версии 1.0.1:

заменить "shutDown" на "shutDownSeleniumServer"

1 голос
/ 16 июня 2009

Джеймс, мне удалось решить проблему запуска / остановки Selenium, применив механизм инициализации и очистки тестовой сборки (см. Остальную часть обсуждения в моем блоге ):

[AssemblyFixture]
public class SeleniumTestingSetup : IDisposable
{
    [FixtureSetUp]
    public void Setup()
    {
        seleniumServerProcess = new Process();
        seleniumServerProcess.StartInfo.FileName = "java";
        seleniumServerProcess.StartInfo.Arguments =
            "-jar ../../../lib/Selenium/selenium-server/selenium-server.jar -port 6371";
        seleniumServerProcess.Start();
    }

    /// <summary>
    /// Performs application-defined tasks associated with freeing, releasing, or
    /// resetting unmanaged resources.
    /// </summary>
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    /// <summary>
    /// Disposes the object.
    /// </summary>
    /// <param name="disposing">If <code>false</code>, cleans up native resources. 
    /// If <code>true</code> cleans up both managed and native resources</param>
    protected virtual void Dispose(bool disposing)
    {
        if (false == disposed)
        {
            if (disposing)
                DisposeOfSeleniumServer();

            disposed = true;
        }
    }

    private void DisposeOfSeleniumServer()
    {
        if (seleniumServerProcess != null)
        {
            try
            {
                seleniumServerProcess.Kill();
                bool result = seleniumServerProcess.WaitForExit(10000);
            }
            finally
            {
                seleniumServerProcess.Dispose();
                seleniumServerProcess = null;
            }
        }
    }

    private bool disposed;
    private Process seleniumServerProcess;
}
0 голосов
/ 16 июня 2009

В противном случае всегда есть верный старый pskill . Это большой молотковый подход, но он убивает webdevwebserver :-)

Я очень мало знаю о селене, поэтому заранее извиняюсь, если pskill не годится для его прекращения

0 голосов
/ 09 июня 2009

Обычно сервер Selenium постоянно работает на наших серверах сборки, так практичнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...