c#测试项目中如何编译单元测试?
How are unit tests compiled in c# test projects?
我已经阅读了有关使用 "Test" 项目为我的 .net 4.5 应用程序编写单元测试的教程,但我不明白它们是如何 运行ning。
当我 运行 在我的项目中测试 类 的特定方法的单元测试时,是否为每个测试重新编译方法的整个项目?
我对测试如何与它们正在测试的方法交互感到困惑。测试本身是否编译?我想他们必须是因为它是 c#。是否有单独的二进制文件用于测试?
您实际上无法 运行 独立进行单元测试。通常它们将由 "test runner," 执行,例如内置 MSTest 测试 运行ning 或 NUnit test runner adapter。这个过程是这样的:
您编写测试,用特定属性标记测试 类,例如[TestClass]
或 [TestFixture]
.
测试类编译成DLL
您使用 Visual Studio 中的菜单项开始您的测试 运行(或者作为自动构建过程的一部分启动)。
测试运行ner加载单元测试DLL。
测试运行ner加载DLL中的所有类型,并使用反射定位具有魔法属性的类型(类),表明它包含测试。
测试运行ner实例化测试class/fixture.
测试 运行ner 迭代 DLL 中具有 [Test]
或 [TestMethod]
属性的方法。
测试 运行ner 使用 Invoke().
调用每个方法
测试运行ner在测试运行nerUI中显示其测试结果,或者输出到报告中。
我已经阅读了有关使用 "Test" 项目为我的 .net 4.5 应用程序编写单元测试的教程,但我不明白它们是如何 运行ning。
当我 运行 在我的项目中测试 类 的特定方法的单元测试时,是否为每个测试重新编译方法的整个项目?
我对测试如何与它们正在测试的方法交互感到困惑。测试本身是否编译?我想他们必须是因为它是 c#。是否有单独的二进制文件用于测试?
您实际上无法 运行 独立进行单元测试。通常它们将由 "test runner," 执行,例如内置 MSTest 测试 运行ning 或 NUnit test runner adapter。这个过程是这样的:
您编写测试,用特定属性标记测试 类,例如
[TestClass]
或[TestFixture]
.测试类编译成DLL
您使用 Visual Studio 中的菜单项开始您的测试 运行(或者作为自动构建过程的一部分启动)。
测试运行ner加载单元测试DLL。
测试运行ner加载DLL中的所有类型,并使用反射定位具有魔法属性的类型(类),表明它包含测试。
测试运行ner实例化测试class/fixture.
测试 运行ner 迭代 DLL 中具有
[Test]
或[TestMethod]
属性的方法。测试 运行ner 使用 Invoke().
调用每个方法
测试运行ner在测试运行nerUI中显示其测试结果,或者输出到报告中。