1)
之间有什么区别using NUnit.Framework;
和
using Microsoft.VisualStudio.TestTools.UnitTesting;
我在运行测试时遇到问题。我在VS 2010中创建了一个新项目(文件 - >新项目 - > Visual C# - >测试,Visual Studio会自动为我创建一些代码:
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace TestProject1
{
/// <summary>
/// Summary description for UnitTest1
/// </summary>
[TestClass]
public class UnitTest1
{
public UnitTest1()
{
//
// TODO: Add constructor logic here
//
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod]
public void TestMethod1()
{
//
// TODO: Add test logic here
//
}
}
}
我使用Selenium IDE记录我的测试,我得到:
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;
namespace SeleniumTests
{
[TestFixture]
public class Untitled2
{
private ISelenium selenium;
private StringBuilder verificationErrors;
[SetUp]
public void SetupTest()
{
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost/km/pldefault.aspx");
selenium.Start();
verificationErrors = new StringBuilder();
}
[TearDown]
public void TeardownTest()
{
try
{
selenium.Stop();
}
catch (Exception)
{
// Ignore errors if unable to close the browser
}
Assert.AreEqual("", verificationErrors.ToString());
}
[Test]
public void TheUntitled2Test()
{
}
}
}
当我把这两个结合起来时,我真的很困惑。
答案 0 :(得分:4)
你有充足的理由感到困惑! ;-)这是两个完全分离的库,解决(或多或少)相同的问题。两者都是单元测试库,就像所有可用的xUnit库一样。 Visual Studio通常使用单元测试库中的构建来创建测试项目。 Selenium为另一个库生成测试:NUnit。这是一个免费的替代品。因此,如果您想使用Selenium生成的测试,您应该从类库项目开始。只需添加对NUnit的引用,添加生成的代码,你应该没问题。
答案 1 :(得分:2)
NUnit和MSTest(即Microsoft.VisualStudio.TestTools.UnitTesting)都是单元测试框架。他们都有同样的目的;让你定义和运行单元测试。
Selenium开箱即可为NUnit生成测试。 There is a plugin available将为MSTest生成测试。我还没试过,但看起来不错。这样您就可以在Visual Studio和TFS中轻松运行selenium测试。
或者您可以免费download NUnit或Nuget获取。创建一个新的类库项目(不是测试项目)并添加对NUnit的引用。然后添加所有生成的测试。如果你想在VS中运行测试,你需要一个像TestDriven.NET这样的测试运行器,或者你可以使用Resharper。