问题描述
我最近从MSTest切换到nUnit以运行我的硒测试。使用MSTest,我正在运行测试 作为程序集初始化。我读到我可以做类似的事情并将其删除 并添加了所有必要的元素以使用NUnit运行我的测试,但顺序为 我所阅读的内容无法按预期执行,或者我可能无法执行此操作。
Nunit的版本= 3.12.0
NUnit3TestAdapter = 3.17.0
下面是我的代码示例 与cs文件有我的测试用例 另一个具有我下面的安装程序的cs文件位于同一命名空间中。
我遇到的问题是,当我运行测试用例时,属性OneTimeTearDown首先被执行 而不是OneTimeSetup。
public class UserInfo
{
public string Name{ get; set; }
public int Id{ get; set; }
}
用于初始化包含我的程序集的文件
using System;
using NUnit.Framework;
namespace Automation_Test
{
[TestFixture]
public class Custom_Tests
{
[Test]
public void Add()
{ /* ... */ }
}
}
解决方法
要将SetUpFixture
用作程序集初始化程序,它必须在全局名称空间中,即,在您指定的任何名称空间之外。
设置代码后,fixture函数会在名称空间中而不是在程序集范围内初始化测试。如果您所有的测试都在同一个命名空间中,那可能没问题。如果根据此设置在多个名称空间中进行测试,那将是一个问题。
即使如此,您的设置未运行但拆解却可以运行似乎很奇怪。因此,请尝试将SetUpFixture
移到全局名称空间中,并报告发生的情况。如果您提供更多信息,我会进行更新。
我遇到的问题是将播放设置放在OneTimeSetup方法中
Playback.PlaybackSettings.DelayBetweenActions = 750;
Playback.PlaybackSettings.ThinkTimeMultiplier = 2;
我没有提出疑问。这引起了沉默 我没有看到的异常会绕开
[OneTimeSetUp]
public static void LoginSystem()
{ /* ... */ }
直接进入OnetimeTeardown方法
我更新了程序,并卸载了项目并删除了引用 和与编码ui相关的元素,并正确添加了三个程序集 参考
- Microsoft.VisualStudio.TestTools.UITest.Playback
- Microsoft.VisualStudio.TestTools.UITest.WindowsStoreUtility
- Microsoft.VisualStudio.TestTools.UITesting
完成此操作后,我的程序应能正常工作。