nUnit不是先执行OneTimeSetup,而是先执行OneTimeEardown

nUnit不是先执行OneTimeSetup,而是先执行OneTimeEardown,nunit,mstest,nunit-3.0,nunit-console,Nunit,Mstest,Nunit 3.0,Nunit Console,我最近从MSTest切换到nUnit来运行selenium测试。使用MSTest,我正在运行我的测试 当程序集初始化时。我读到,我可以做类似的事情,并删除 并添加了使用NUnit运行测试所需的所有元素,但顺序为 我读到的东西执行起来并不像我预期的那样有效,否则我可能无法做到这一点 Nunit的版本=3.12.0 NUnit3TestAdapter=3.17.0 下面是我的代码示例 有了cs文件,我的测试用例 和另一个cs文件,如下面所示,它们都位于同一名称空间中 我遇到的问题是,当我运行测试用例

我最近从MSTest切换到nUnit来运行selenium测试。使用MSTest,我正在运行我的测试 当程序集初始化时。我读到,我可以做类似的事情,并删除 并添加了使用NUnit运行测试所需的所有元素,但顺序为 我读到的东西执行起来并不像我预期的那样有效,否则我可能无法做到这一点

Nunit的版本=3.12.0

NUnit3TestAdapter=3.17.0

下面是我的代码示例 有了cs文件,我的测试用例 和另一个cs文件,如下面所示,它们都位于同一名称空间中

我遇到的问题是,当我运行测试用例时,属性onetimeeardown首先被执行 而不是一次性设置

      using System;
  using NUnit.Framework;
namespace Automation_Test
{

  [TestFixture]
  public class Custom_Tests
  {
    [Test]
    public void Add()
    { /* ... */ }
  }
}
用于包含我的程序集的文件已初始化

using System;
  using NUnit.Framework;
namespace Automation_Test
{

   [SetUpFixture]
  public class AssemblyInitializer
  {
    [OneTimeSetUp]
    public static void LoginSystem()
    { /* ... */ }

    [OneTimeTearDown] <---- This method is getting trigger first when i run the test instead of onetimesetup
    public static void AssemblyCleanup()
    { /* ... */ }

  
  }
}
使用系统;
使用NUnit.Framework;
命名空间自动化测试
{
[固定装置]
公共类装配初始值设定项
{
[一次性设置]
公共静态无效登录系统()
{ /* ... */ }

[onetimeeardown]若要将
SetUpFixture
用作程序集初始值设定项,它必须位于全局命名空间中,即位于您指定的任何命名空间之外

在设置代码时,fixture的功能是初始化命名空间中的测试,而不是程序集范围内的测试。如果所有测试都在同一命名空间中,则可以这样做。如果根据此设置在多个命名空间中进行测试,则会出现问题


即便如此,您的安装程序没有运行,但您的拆卸却运行,这似乎很奇怪。因此,请尝试将
SetUpFixture
移动到全局命名空间中,并报告发生的情况。如果您提供更多信息,我将更新此设置。

我遇到的问题是将播放设置放在OneTimeSetup方法中

 Playback.PlaybackSettings.DelayBetweenActions = 750;
 Playback.PlaybackSettings.ThinkTimeMultiplier = 2;
我并没有表现出来,这引起了一场沉默 我没有看到的异常会发生,它会被忽略

   [OneTimeSetUp]
    public static void LoginSystem()
    { /* ... */ }
然后直接转到onetimeeartown方法

我更新了我的程序,卸载了我的项目并删除了引用 以及与编码ui相关的元素,并正确添加了三个程序集 参考资料

  • Microsoft.VisualStudio.TestTools.UITest.Playback
  • Microsoft.VisualStudio.TestTools.UITest.WindowsStoreUtility
  • Microsoft.VisualStudio.TestTools.UITesting
  • 这样做之后,我的程序正常工作