- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试以编程方式检查我的单元测试是否作为部署过程的一部分通过。该应用程序使用 MBunit 和 Gallio 作为其单元测试框架。
这是我的代码:
var setup = new Gallio.Runtime.RuntimeSetup();
setup.AddPluginDirectory(@"C:\Program Files\Gallio\bin");
using (TextWriter tw = new StreamWriter(logFilename))
{
var logger = new Gallio.Runtime.Logging.TextLogger(tw);
RuntimeBootstrap.Initialize(setup, logger);
TestLauncher launcher = new TestLauncher();
launcher.AddFilePattern(dllToRunFilename);
TestLauncherResult result = launcher.Run();
}
这是我正在加载的 DLL 中包含的测试(我已经验证了它适用于 Icarus 测试运行器):
public class Tests
{
[Test]
public void Pass()
{
Assert.IsTrue(true);
}
[Test]
public void Fail()
{
Assert.Fail();
}
}
当我运行应用程序时,我在 results
这是不正确的,因为确实有测试要运行!日志文件中有以下内容
Disabled plugin 'Gallio.VisualStudio.Shell90': The plugin enable condition was not satisfied. Please note that this is the intended behavior for plugins that must be hosted inside third party applications in order to work. Enable condition: '${process:DEVENV.EXE_V9.0} or ${process:VSTESTHOST.EXE_V9.0} or ${process:MSTEST.EXE_V9.0} or ${framework:NET35}'. Disabled plugin 'Gallio.VisualStudio.Tip90': The plugin depends on another disabled plugin: 'Gallio.VisualStudio.Shell90'.
如何解决此问题并找到测试结果?
最佳答案
这对我有用,请注意我使用了这个 GallioBundle nuget 获取 gallio 和 mbunit,因此您安装的内容可能有所不同。
有关插件的日志消息是预期的,如果您自托管 Gallio 运行时,这些插件将无法工作。
using System;
using System.IO;
using Gallio.Runner;
using Gallio.Runtime;
using Gallio.Runtime.Logging;
using MbUnit.Framework;
public static class Program
{
public static void Main()
{
using (TextWriter tw = new StreamWriter("RunTests.log"))
{
var logger = new TextLogger(tw);
RuntimeBootstrap.Initialize(new RuntimeSetup(), logger);
TestLauncher launcher = new TestLauncher();
launcher.AddFilePattern("RunTests.exe");
TestLauncherResult result = launcher.Run();
Console.WriteLine(result.ResultSummary);
}
}
}
public class Tests
{
[Test]
public void Pass()
{
Assert.IsTrue(true);
}
[Test]
public void Fail()
{
Assert.Fail();
}
}
这样测试:
› notepad RunTests.cs
› nuget.exe install -excludeversion GallioBundle
Installing 'GallioBundle 3.4.14.0'.
Successfully installed 'GallioBundle 3.4.14.0'.
› cd .\GallioBundle\bin
› csc ..\..\RunTests.cs /r:Gallio.dll /r:MbUnit.dll
Microsoft (R) Visual C# Compiler version 12.0.21005.1
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
› .\RunTests.exe
2 run, 1 passed, 1 failed, 0 inconclusive, 0 skipped
关于c# - 如何使用 Gallio 和 MBUnit 以编程方式运行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21044212/
我正在使用 TeamCity 进行测试和生产的自动化构建。 TeamCity 在流程结束时使用 Gallio 运行我们的 mbUnit 3.1 测试。 在运行测试构建时,Gallio 应该尝试针对测试
我无法通过 TestDriven 运行的 MbUnit 测试中的 Common.Logging 框架将日志消息输出到控制台。我不确定这是否与 Gallio 在 TestDriven 中注册的方式有关。
我想弄清楚如何在 MbUnit v3 中编写组合测试。网络上的所有示例代码都引用了 MbUnit v2,这意味着使用 3 个属性: 组合测试 工厂 使用工厂 在 MbUnit v3 中没有 Using
有谁知道是否可以将结果写入某些跟踪监听器或测试报告捕捉并嵌入到测试报告中的内容? 例如, 无功贷款 = GetLoans(...参数); Assert.IsTrue(Loans.Length>0);
如何配置 Team Build 2010 build process template通过 Gallio 运行 MbUnit 测试? 最佳答案 我设法通过基于默认值创建新的构建过程模板来使其正常工作。
在 stackoverflow 上,我遇到了 mbunit。在它的页面上,它指出 mbunit 是一个生成单元测试框架,但我找不到任何描述生成单元测试框架是什么的地方。 我希望得到: 定义 有关生成单
我正在考虑将我的单元测试框架从 NUnit 迁移到 MbUnit,因为它有几个我喜欢的特性,其中之一是可并行化属性。如果我用这个属性标记测试会发生什么 i,所有的实例变量只对它们自己的线程可用还是共享
我想知道是否有一种方法可以比较 MBUnit 中的两个对象,以便在对象“看起来”相同时通过测试,即使它们是不同的实例? 例如: [TestFixture] class ComparisonTestFi
我正在尝试使用 MbUnit 测试多线程 IO 类。我的目标是让测试装置构造函数执行 3 次,对类中的每一行执行一次。然后,对于每个实例,在并行线程上多次执行测试。 但是,Icarus 在 TaskR
有点好奇,“MBUnit”中的“MB”是什么意思? 最佳答案 这意味着更好的单元测试框架:) 更严重的是,意思是基于模型 单元测试框架(引用 "Crafting A Toolchain", Jeff
如何测试IEnumerable在MBunit中是否具有SomeClass类的所有项? 我曾经使用过Visual Studio单元测试框架,并找到了CollectionAssert.AllAreInst
代码 Assert.AreEqual (9.97320998018748d, observerPosition.CenterLongitude); 产生 Expected Value & Actual
关于 mbunit v3 的新功能的文档有任何指示吗? 最佳答案 Wiki和 API documentation是 Gallio 最可靠的信息来源和 MbUnit .一些博客也很有趣(主要由贡献者维护
比如说,我有以下测试: [Test] public void MyTest( [RandomNumbers( Count=100, Minimum=0, Maximum=1000 )]
从 MBUnit 我试图检查两个对象的值是否相同使用 Assert.AreSame(RawDataRow, result); 但是我遇到了以下失败: Expected Value & Actual V
我需要测试一个类,该类的返回值取决于数据库中的值。我可以在单元测试中访问数据库,但这些值可能会改变。对此有标准解决方案吗? 最佳答案 标准答案是重新设计你的类,这样你就可以模拟出依赖关系。这通常是通过
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我试过用谷歌搜索这个但是一无所获。基本上,我想按照我定义的顺序运行每一行。例如,如果我有这个: [Row("a")] [Row("b")] [Row("c")] [Test] public void
Resharper 6 刚刚发布。我很想更新,但 MBUnit 我上次尝试 EAP 时,支持仍然中断。 MBUnit 现在是否与 Resharper 6 一起使用? 谢谢, 阿德里安 最佳答案 Gal
我读到 MbUnit 是类固醇上的 NUnit,但我不明白为什么。从我在这里读到的内容,我听说 NUnit 比 MbUnit 更受欢迎。主要原因之一是因为它具有流畅的界面。这是唯一的原因吗? 为什么我
我是一名优秀的程序员,十分优秀!