有没有人找到一种方法来运行Selenium RC/Selenium Grid测试,用C#并行编写?
我目前使用Selenium RC的C#驱动程序编写了一个相当大的测试套件.运行整个测试套件需要一个多小时才能完成.我通常不需要运行整个套件,因此到目前为止它还没有引起关注,但我希望能够更频繁地进行操作(例如,作为自动构建的一部分)
我最近花了一些时间来讨论Selenium Grid项目,其目的主要是允许这些测试并行运行.不幸的是,似乎我正在使用的TestDriven.net插件连续运行测试(即,一个接一个).我假设NUnit会以类似的方式执行测试,虽然我实际上没有测试过.
我注意到NUnit 2.5测试版开始讨论与pNUnit并行运行测试,但我还没有真正熟悉这个项目,以确定这是否可行.
我正在考虑的另一个选择是将我的测试套件分成不同的库,这样我就可以同时从每个库中运行测试,但是我想尽可能避免这种情况,因为我不相信这是分裂的正当理由.测试套件.
我正在研究这个问题并且发现Gallio最新可以并行驱动mbUnit测试.您可以针对单个Selenium Grid集线器驱动它们,该集线器可以监听多个远程控制服务器.
我正在使用Gallio的最新版本来获取ParallelizableAttribute和DegreeOfParallelismAttribute.
我注意到的一些事情是我不能依赖TestSet
和TestTeardown
孤立并行测试.你需要测试看起来像这样:
[Test] public void Foo(){ var s = new DefaultSelenium("http://grid", 4444, "*firefox", "http://server-under-test"); s.Start(); s.Open("mypage.aspx"); // Continue s.Stop(); }
使用该[SetUp]
属性启动Selenium会话导致测试无法从中获取远程会话s.Start()
.