我在设置测试时遇到问题。我已经尝试使用控制台c#文件进行我的selenium测试,该测试运行测试,但它并没有出现在测试资源管理器中。当我创建一个单元测试c#项目时,它不会在测试资源管理器中运行或显示。做错了什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace SeleniumTests1
{
[TestClass]
class SeleniumTest
{
[TestMethod]
static void Main(string[] args)
{
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://www.bing.com/");
driver.Manage().Window.Maximize();
IWebElement searchInput = driver.FindElement(By.Id("sb_form_q"));
searchInput.SendKeys("Hello World");
searchInput.SendKeys(Keys.Enter);
searchInput = driver.FindElement(By.Id("sb_form_q"));
string actualvalue = searchInput.GetAttribute("value");
Assert.AreEqual(actualvalue, "Hello World");
driver.Close();
}
}
}
答案 0 :(得分:3)
这可能有用。我认为你的TestMethod需要public
并且是非静态的,以便它出现在Test Explorer中。
namespace SeleniumTests1
{
[TestClass]
public class SeleniumTest
{
[TestMethod]
public void Main()
{
答案 1 :(得分:1)
虽然这是一个相当明显和直接的答案,但是,看着 Peter 最初发布的代码和我自己的愚蠢错误,我意识到我们可能出错的另一个地方是不制作我们的外部测试类public 否则他们将默认为内部并且包含的测试不会显示在测试资源管理器中。因此,单元测试代码的最终形式将以这样的方式开始
namespace SeleniumTests1
{
[TestClass]
public class SeleniumTest
{
[TestMethod]
public void testMethod(string[] args)
{
答案 2 :(得分:0)
你正在制作一种Main方法测试方法吗? 创建一个单独的测试项目,然后引用您正在测试的项目并将代码移动到那个,例如。
var obj_fail = {};
$.getJSON("geojson/com/14001.json")
.done(function(data){
obj_fail = data;
});
答案 3 :(得分:0)
我想我可能已经设法通过从selenium网站导入net40文件中的4个dll来解决此问题。