因此,我通过 Gallio 设置了一些代码,用于在每个测试会话之前启动 selenium 服务器,并在会话完成时将其关闭(所有测试都已运行)。它可以正常启动服务器,但我似乎无法让它停止服务器。我很确定我做错了什么,但我看不出是什么。你能帮助我吗?
我正在使用:
* Selenium Server 2.0b4
* Selenium WebDriver 2.0b4
* Visual Studio 2010 (C#)
* ReSharper
* Gallio
这是我的代码:
[AssemblyFixture]
public class SeleniumSetup : IDisposable
{
private Process seleniumServer;
private Boolean disposed;
[FixtureSetUp]
public void Setup()
{
const string javaFileLocation = @"C:\opt\java\bin\java.exe";
const string jarFileLocation = @"C:\my\autotests\Selenium\selenium-server.jar";
var seleniumServer = new Process
{
StartInfo =
{
FileName = javaFileLocation,
Arguments = "-jar " + jarFileLocation + " -port 4444 -timeout 90 -browserSideLog -ensureCleanSession -trustAllSSLCertificates -log selenium-server.log",
WorkingDirectory =
jarFileLocation.Substring(0, jarFileLocation.LastIndexOf("\\")),
UseShellExecute = true
//WindowStyle = ProcessWindowStyle.Hidden
}
};
seleniumServer.Start();
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (false == disposed)
{
if (disposing)
DisposeOfSeleniumServer();
disposed = true;
}
}
[FixtureTearDown]
private void DisposeOfSeleniumServer()
{
if (seleniumServer != null)
{
try
{
seleniumServer.Kill();
seleniumServer.WaitForExit(10000);
}
finally
{
seleniumServer.Dispose();
seleniumServer = null;
}
}
}
}