Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Nunit3 OneTimeSetUp和OneTimeEartDown不工作_C#_Selenium_Nunit_Nunit 3.0 - Fatal编程技术网

C# Nunit3 OneTimeSetUp和OneTimeEartDown不工作

C# Nunit3 OneTimeSetUp和OneTimeEartDown不工作,c#,selenium,nunit,nunit-3.0,C#,Selenium,Nunit,Nunit 3.0,一次设置和一次下止点工作 using NUnit.Framework; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassLibrary1 { class Class1 { [SetUp] public void setup()

一次设置和一次下止点工作

using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{

    class Class1
    {
        [SetUp]
        public void setup()
        {
            Console.WriteLine("setup method");
        }
        [TearDown]
        public void teardown()
        {
            Console.WriteLine("teardown");
        }
        [OneTimeSetUp]
        public void onetimesetup()
        {
            Console.WriteLine("onetimesetup method");
        }
        [OneTimeTearDown]
        public void onetimeteardown()
        {
            Console.WriteLine("onetimeteardown method");
        }
        [Test]
        public void testCase()
        {
            Console.WriteLine("Testcase method 2");
        }

    }
}
我以前安装过Resharper,现在我已经完成了Resharper。 我已从C:\Users\vkris\AppData\Local\Microsoft\VisualStudio\15.0\U d20cab45\Extensions中删除了resharper 我现在在控制面板中有了更多

但我还是有这个问题。我有一个以前的项目,这是工作良好。以下是我从nuget软件包下载的软件包。 更准确地说,请找到我试图完成的项目


TestFixture没有问题(例如,这里有一个),因此测试运行的方式肯定有问题,所以让我为您提供一种运行测试的替代方法

  • 获取NUnit.Console numget包(这包括另一个名为NUnit.ConsoleRunner的包,稍后将提及)
  • 选择包含要运行的单元测试的项目
  • 转到该项目的项目属性
  • 转到“应用程序”选项卡
  • 选择程序集名称并将其复制到剪贴板
  • 转到“调试”选项卡
  • 在“开始选项”/“命令行参数”中:“粘贴程序集名称并在末尾添加“.dll--debug--inprocess”
  • 将“工作目录”更改为生成DLL的文件夹
  • 将“启动操作”设置为“启动外部程序”,并给出NUnit控制台的位置(例如 “完整路径\NUnit.ConsoleRunner.version\tools\nunit3 console.exe”)
  • 在“解决方案资源管理器”中,右键单击项目并选择“设置为启动项目”
  • 然后从VisualStudio“启动”解决方案

  • 希望这能有所帮助。

    为什么要使用xunit标签?这似乎是一个修女问题。这不是一个好问题。不清楚您是如何运行测试的,您得到了什么结果,以及您期望得到什么结果。我的观察结果是,该类缺少一个TestFixtureAttribute,而一次性属性仅为。是否可能您使用的测试运行程序(例如NUnit控制台)来自错误版本的NUnit,无法识别这些新名称?我尝试从visual Studio的测试资源管理器运行。我希望此输出为onetimesetup method-->setup method-->Testcase method 2-->拆卸-->onetimeeardown method。但输出是设置方法-->Testcase方法2-->拆卸。我还尝试了类的testFixture属性,我猜它使用了错误的版本。尝试将属性“OneTimeSetUp”重命名为“TestFixtureSetUp”,看看这是否使其运行该方法。如果这行得通,那么你需要弄清楚为什么它在运行测试时使用旧版本的NUnit。你好,Richard。我试了你的建议。但它没有起作用。我已经搬到了Nunit2,它起了部分作用。它没有调用TestFixtureTearDown。我仍然无法在Nunit3中使用OneTimeSetup和OneTimeEardown。我格式化了我的系统并重新安装了所有东西,但结果没有变化。请帮忙,我按照你建议的步骤做了。但它没有成功。这与Visual Studio版本有关吗。我正在使用VS 2017的最新更新。感谢您尝试帮助我。对于Visual Studio的最后4个主要版本,上面的步骤应该可以。你需要帮助我来帮助你:“它没有解决”让我不知道发生了什么问题。对不起,我的信息不完整。我用你给出的步骤又试了一次。我找到了我犯错误的地方。我在第七步中犯了错误。这一次成功了。正在调用OnetimeSetup和OneTimeEardown。但我有一个问题。我仍然无法从TestExplorer调用OnetimeSetup和OneTimeEardown。当我从“开始”按钮运行它时,它工作完全正常。为什么是这样。这对每个人都是一样的,还是我犯了什么错误。另外,如果我必须运行单独的测试用例,我如何使用“开始”按钮来实现这一点。?最重要的是,您的解决方案确实很有帮助。这似乎证实了我的怀疑,即您正在使用的Visual Studio测试运行程序不知何故选择了NUnit的v3之前版本。不,不是这样的。如何单独运行测试:testrunner有一个GUI版本,在完全为v3重新编写之后,它处于预发布状态,请参阅。