标签: mbunit

是NUnit Selenium测试的不好选择吗?

在搜索NUnit +依赖方法+测试执行顺序时,我已经在SO上阅读了无数的答案.每一个答案都表明,迫使单位测试的任何订单都是非常邪恶的.

我正在使用NUnit编写Selenium测试.所以我试图使用单元测试框架编写集成测试!

举一个集成测试的例子(这只是一个例子).我需要在继续其他测试之前创建一个有效的帐户.如果创建帐户失败,那么我想中止整个测试执行.

由于我不想依赖于字母顺序的测试和NUnit的真正精神,因此决定在进行任何进一步测试之前创建一个帐户.虽然由于两个核心原因它看起来不合适 -

  1. 不必要的代码重复/执行
  2. 如果应用程序帐户创建不起作用,我的所有测试仍会尝试一次又一次地创建帐户并失败

我倾向于认为NUnit可能不适合处理Selenium测试.但如果不是Nunit那么我应该使用什么?

c# mbunit nunit pnunit gallio

10
推荐指数
1
解决办法
5564
查看次数

TestDriven.net与Gallio,MbUnit和NCover问题

为什么TestDriven.Net不能用于我的gallio/mbunit测试?

我已经将TDD.Net与MbUnit v2一起使用并且没有任何问题,但是在我的新电脑上使用新的gallio版本时,它什么也没做.

从解决方案资源管理器中的tdd右键单击菜单,如果我"使用调试器进行测试",我会在屏幕底部的VS状态栏中显示"0传递,0失败,0跳过".

如果我右键单击我的夹具并做同样的事情,我得到

"The target type doesn't contain tests from a known test framework or a 'Main' method."
Run Code Online (Sandbox Code Playgroud)

如果我在单独的测试中执行它,看起来它没有运行SetUp,所以测试失败(但至少它运行)

我知道这听起来像这个问题,但我的注册表看起来是正确的.

如果我尝试从TDD.Net菜单运行NCover,没有任何反应(除了输出窗口闪烁)

当我用resharper"运行单元测试"时,它会将它们全部拾取并正确运行.

我使用Gallio/MbUnit 3.0.5.546,TDD.Net 2.18.2268,Resharper 4.1,VS 2k8 Pro 9.0.30729.1 SP,.Net 3.5 SP1,Windows Server 2k8(x86)

mbunit ncover testdriven.net gallio

9
推荐指数
1
解决办法
4378
查看次数

如何在visual studio中调试mbunit/Gallio单元测试

我试图弄清楚如何在用MbUnit/Gallio编写的单元测试中命中断点.我尝试运行Gallio.Icarus,将vs调试器连接到它,断点没有被击中.接下来我尝试从项目属性启动Gallio.Echo,但是在提供dll之后我收到了一条错误消息,说只有.exe可以测试.单元测试从Gallio.Icarus运行良好,但是,我无法调试它们.

谢谢!

mbunit gallio visual-studio

9
推荐指数
2
解决办法
4405
查看次数

可以在没有安装Gallio的情况下进行Gallio/MbUnit测试吗?

我在Visual Studio 2008中安装了TestDriven.Net,当我从TD.Net运行mbunit测试时,我得到以下消息:

看起来你正在尝试执行Gallio/MbUnit单元测试.

对于Gallio v3.0.6 build 787/Gallio v3.1 build 313或更高版本(推荐):请确保包含"MbUnit.dll"参考的目录还包含Gallio的测试运行器文件('MbUnit.dll.tdnet','TDNet\Gallio.TDNetRunner.dll','Gallio.dll'等)

嗯.我还没有安装Gallio,这就是为什么它在抱怨.

我知道我现在可以轻松安装Gallio并完成它.但是,我真的想知道我是否可以在没有在每个开发人员的机器上安装Gallio的情况下运行这些测试.我可以在bin目录中包含几个dll以使其正常工作吗?

以前有人有过这方面的成功吗?

注意:我已按照上面信息中的说明操作,但无效.

谢谢!

deployment mbunit testdriven.net gallio

9
推荐指数
1
解决办法
1605
查看次数

MbUnit的[Parallelizable]和DegreeOfParallelism究竟是如何工作的?

我以为我理解MbUnit的并行测试执行是如何工作的,但是我看到的行为与我的怀疑有很大不同,我怀疑我错过了什么!

我有一组我希望同时运行的UI测试.所有测试都在同一个程序集中,分为三个不同的名称空间.所有测试都是完全独立的,所以我希望所有这些测试都有资格进行并行执行.

为此,我将以下内容放在AssemblyInfo.cs中:

[assembly: DegreeOfParallelism(8)]

[assembly: Parallelizable(TestScope.All)]
Run Code Online (Sandbox Code Playgroud)

我的理解是这种组件属性的组合应该考虑所有的测试[Parallelizable],并且测试运行器在执行期间应该使用8个线程.我的个别测试用[Test]属性标记,没有别的.它们都不是数据驱动的.

但是,我实际看到的最多使用了5-6个线程,这意味着我的测试运行时间比应该的时间长.

我错过了什么吗?我是否还需要做其他事情以确保跑步者正在使用我的所有8个线程?

NB无论我使用哪种跑步者,行为都是一样的.GUI,命令行和TD.Net跑步者的行为与上述相同,再次让我觉得我错过了什么.

编辑:正如评论中所指出的,我正在运行MbUnit的v3.1(更新2版本397).该文件表明,装配水平[parallelizable]属性是可用的,但它似乎也参考框架V3.2尽管尚未可用.

编辑2:为进一步澄清,我的组装结构如下:

assembly
- namespace
   - fixture
      - tests (each carrying only the [Test] attribute)
   - fixture
      - tests (each carrying only the [Test] attribute)
- namespace
   - fixture
      - tests (each carrying only the [Test] attribute)
   - fixture
      - tests (each carrying only the [Test] attribute)
- namespace
   - fixture
      - tests (each carrying only the [Test] attribute) …
Run Code Online (Sandbox Code Playgroud)

c# parallel-processing mbunit automated-tests

9
推荐指数
1
解决办法
4739
查看次数

NUnit中的TestActionAttribute可以在fixture自己的SetUp方法之前运行BeforeTest吗?

我有一些旧的MbUnit代码,如下所示:

public class MyFixture {

    [SetUp]
    public void SetUp() {
        // Add data to database
    }

    [Test, Rollback]
    public void DoTest() {
        // Tests with the data
    }
}
Run Code Online (Sandbox Code Playgroud)

我新的NUnit Rollback属性看起来有点像这样:

public class RollbackAttribute : TestActionAttribute
{
    public override void BeforeTest(TestDetails testDetails)
    {
        // Begin transaction
    }

    public override void AfterTest(TestDetails testDetails)
    {
        // Abort transaction
    }
}
Run Code Online (Sandbox Code Playgroud)

回滚应回滚SetUp方法中添加的新数据以及测试期间的任何修改.不幸的是,似乎NUnit的BeforeTest在fixture的SetUp方法之后运行,因此在SetUp期间添加的数据不会回滚.

有没有办法在SetUp之前运行BeforeTest?

一个选项是基类,并用SetUp和TearDown中的其他代码替换现有的Rollback属性,但是我的一些测试需要在事务外部运行(它们在测试运行期间自己创建多个事务),因此在所有测试中添加事务案件需要一点点照顾.我宁愿找到一个可以重用现有Rollback属性的解决方案.

mbunit nunit

9
推荐指数
1
解决办法
529
查看次数

用于MBUnit测试的Visual Studio 2008和2010的Gallio测试运行器插件

如果我安装Gallio 3.x还会为Visual Studio安装一个测试运行器插件吗?

或者我是否必须使用其他插件(如TestDriven.NET或Visual Nunit)从VS中运行MbUnit测试类?

mbunit plugins gallio visual-studio

8
推荐指数
2
解决办法
8320
查看次数

xUnit.NET中的组合数据?

我正在从MbUnit迁移到xUnit,我正在尝试找到MbUnit [CombinatorialJoin]和的等效属性(或方法)[Column].

例如,在测试具有多个布尔参数的函数的常见行为时,[Column]可以非常轻松地测试排列:

public void TestMethodWithTooManyOptions([Column(true, false)] bool dispose,
                                        [Column(true, false)] bool useDestinationStream,
                                        [Column(true, false)] bool useCorruptedSource,
                                        [Column(true, false)] bool loadTwice,
                                        [Column(true, false)] bool useSourceStream) {
Run Code Online (Sandbox Code Playgroud)

[CombinatorialJoin],[SequentialJoin],[PairwiseJoin]如何影响列(或行)进行置换.

.net mbunit unit-testing xunit

8
推荐指数
1
解决办法
913
查看次数

MSTest和NHibernate

有没有人有任何经验让MSTest正确地将hibernate.cfg.xml复制到输出目录?我的所有MSTests都失败了,找不到hibernate.cfg.xml错误(我将它设置为Copy Always),但我的MBUnit测试通过了.

nhibernate mbunit mstest

7
推荐指数
1
解决办法
2051
查看次数

当仅选择单个测试时,Resharper运行所有测试

我正在使用Resharper 4.5和Visual Studio 2008以及MBUnit测试,使用ReSharpher运行测试似乎有些奇怪.

在侧面,每个测试方法旁边都有图标,其中包含Run和Debug选项.当我选择Run它时,只显示单次测试的结果.但是我注意到测试需要相当长的时间才能运行.

当我运行Sql Server探查器并开始逐步执​​行代码时,我意识到它不仅运行所选的测试,而且还运行了类中的每一个.是否有任何理由让它看起来像只运行一个单元测试而实际运行它们?

当我只关心一个集成测试时,它会等待所有集成测试的痛苦,有没有办法改变它?

resharper mbunit unit-testing

7
推荐指数
2
解决办法
1023
查看次数