Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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# 使用NUnit,我可以确定在当前运行的测试之前有哪些测试吗?_C#_Visual Studio_Unit Testing_Testing_Nunit - Fatal编程技术网

C# 使用NUnit,我可以确定在当前运行的测试之前有哪些测试吗?

C# 使用NUnit,我可以确定在当前运行的测试之前有哪些测试吗?,c#,visual-studio,unit-testing,testing,nunit,C#,Visual Studio,Unit Testing,Testing,Nunit,下面是我的场景——用C#编码,使用NUnit,我有以下测试: 测试1 测试2 测试3 测试4 TestX 这些测试的前四个都是独立运行的,但是我需要TestX以稍微不同的方式运行。根据我刚才运行的测试,此测试需要以不同的方式运行 例如,如果我选择在一次运行中运行Test1、Test2和TestX,那么TestX将以一种方式运行,但如果我改为运行Test3、Test4和TestX,则其运行方式将有所不同。我希望有一种方法可以访问特定运行中使用的测试,并将其输入到switch语句中,从而相应地更

下面是我的场景——用C#编码,使用NUnit,我有以下测试:

  • 测试1
  • 测试2
  • 测试3
  • 测试4
  • TestX
这些测试的前四个都是独立运行的,但是我需要TestX以稍微不同的方式运行。根据我刚才运行的测试,此测试需要以不同的方式运行

例如,如果我选择在一次运行中运行Test1、Test2和TestX,那么TestX将以一种方式运行,但如果我改为运行Test3、Test4和TestX,则其运行方式将有所不同。我希望有一种方法可以访问特定运行中使用的测试,并将其输入到switch语句中,从而相应地更改TestX

澄清:我不需要TestX来知道前四个测试的结果,也不需要知道它们是如何运行的,只需要知道它们是否已经运行。此外,当我说引用单个“测试运行”时,我的意思是在测试资源管理器中按CTRL键单击几个测试,然后一次性运行它们


我似乎无法从TestContext中访问这些信息,但我真的希望有另一种方法我还没有想到。任何帮助都将不胜感激-非常感谢。

首先,我要说的是,亲爱的,你想做的是个坏主意

话虽如此,我能想到的唯一可靠方法是将TestX的行为建立在运行其他测试的一些可观察到的副作用的基础上。因此,如果所有测试都将数据添加到数据库中的表中,那么让TestX查看创建的数据,然后相应地进行操作。你不应该这样做

现在回到我认为你应该做的事情:

有几个TestX的变体,每个变体测试如果前面的每个测试都已运行,TestX应该做什么,即将建议的switch语句的每个部分放入一个单独的测试中,并让该测试的安排(或设置)执行与运行前面的测试相同的工作


这似乎需要更多的工作,但它将为您提供更好的可重复测试,我认为这将更易于维护。

非常感谢-完美的答案!