问题标签 [xunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1457 浏览

unit-testing - 如何测试私有目录中的函数?

我正在使用MATLAB xUnit来测试一些代码。我希望能够直接调用private目录中包含的一些函数。

这是一个简单的可复制设置:为自己创建一个项目目录,其中包含两个文件夹codetest. 在code中,创建一个名为的子目录,private使您的目录树看起来像

code目录中放置一个函数

private目录中放置一个函数

test目录中放置一个函数

现在导航到测试目录并调用runtests. 您应该会看到一个错误,说明sub未定义。

privatematlab 路径上不允许使用目录,因此这不是一个选项。我可能会在code目录中放置一个函数来检索所有私有函数的句柄,但这似乎很hacky。

访问测试私有功能的最佳方法是什么?

编辑:

导航到私有目录的想法有问题。理论上我可以打电话,例如,

不幸的是,一旦您调用测试框架,它就会导航到包含测试的目录run

0 投票
3 回答
2171 浏览

wcf - .NET 单元测试运行程序输出 FaultException.Detail

我正在 WCF 服务上运行一些单元测试。该服务配置为在故障响应中包含异常详细信息(在我的服务配置文件中包含以下内容)。

如果测试在服务器上导致未处理的异常,则客户端会收到故障,并带有完全填充的服务器堆栈跟踪。我可以通过调用异常的ToString()方法看到这一点。问题是我尝试过的任何测试运行器(xUnit、Gallio、MSTest)似乎都没有输出。它们似乎只是输出异常的 Message 和 StackTrace 属性。

为了说明我的意思,以下单元测试将输出三个部分:

  • 错误信息
  • 错误堆栈跟踪
  • 标准控制台输出(包含我想要的信息,例如“故障详细信息等于异常详细信息,可能由 IncludeExceptionDetailInFaults=true 创建,其值为:...”


编辑: 但是,我宁愿不要被迫在每个测试中捕获异常并将其写入控制台以确定FaultException对象Detail属性中的内容。

例如,


拥有这些信息将使测试和部署的初始阶段变得不那么痛苦。

我知道我可以将每个单元测试包装在一个通用异常处理程序中,并将异常写入控制台并在我的所有单元测试中重新抛出(如上所述),但这似乎是实现这一目标的一种非常冗长的方式(而且看起来很糟糕)。

有谁知道是否有任何方法可以在发生未处理的异常时包含此信息?有没有我缺少的设置?我的服务配置是否缺乏适当的故障处理?也许我可以为某些单元测试框架编写某种插件/适配器?也许我应该使用不同的单元测试框架!

我的实际设置是通过 Gallio 为开发环境执行的 xUnit 单元测试,但我确实编写了一套单独的“冒烟测试”,我希望能够让我们的工程师通过 xUnit GUI 测试运行器(或Gallio 或其他)以简化最终部署。

谢谢。

亚当

0 投票
8 回答
245557 浏览

jenkins - Hudson 支持的 JUnit XML 格式规范是什么?

我有 Hudson 作为持续集成服务器,我想使用“发布 JUnit 测试结果报告”选项。但是我不使用 xUnit 工具进行测试,而是使用 shell 脚本运行测试并以简单格式返回结果。我正在考虑制作一个将这些结果转换为 JUnit 格式的脚本。所以我对 JUnit 文件的外观很感兴趣?

0 投票
3 回答
6650 浏览

msbuild - MSBuild - 尝试运行 xUnit (.net) 测试

我正在尝试设置一个 C# 项目,该项目将在我构建时运行 xUnit 测试,因此我可以在持续集成中使用它们。我有一个常规项目,一个使用 xUnit 的类库测试项目,以及我的测试运行程序项目。从我读过的所有内容来看,我应该能够通过在测试运行器项目中执行此操作来使其工作:

当我在更改后构建解决方案(通常是编辑 .csproj 文件)时,我得到以下信息:

无法从程序集 C:\Users[myusername]\Code\OnePageOneDb\OnePageOneDb.TestRunner\xunit.runner.msbuild.dll 加载“Xunit.Runner.MSBuild.xunit”任务。无法加载文件或程序集 'file:///C:\Users[myusername]\Code\OnePageOneDb\OnePageOneDb.TestRunner\xunit.runner.msbuild.dll' 或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。

即使我将 xunit.runner.msbuild.dll 和 xunit.runner.utility.dll 添加到它所指位置的项目中,我也会收到此消息。但是,如果我在没有任何更改的情况下再次构建,我会一直得到这个:

未找到“xunit”任务。检查以下内容: 1.) 项目文件中的任务名称与任务类的名称相同。2.) 任务类是“公共的”并且实现了 Microsoft.Build.Framework.ITask 接口。3.) 在项目文件或位于“C:\Windows\Microsoft.NET\Framework\v4.0.30319”目录的 *.tasks 文件中正确声明了任务。

但我已经检查了所有这些事情:

  1. xunit.runner.msbuild.dll 中的任务类是Xunit.Runner.MSBuild.xunit(并且xunit 在类名中是小写的)。
  2. 任务类继承自实现 ITask 的 Task。
  3. 所以可能UsingTask有问题,但我不知道是什么问题。

(我还认为问题可能是 xunit.runner.msbuild.dll 是针对 .NET 2.0 的,而我使用的是 VS 2010,但我在 .NET 2.0 中重新创建了测试运行程序项目,问题仍然存在。)

任何人都可以帮忙吗?

0 投票
8 回答
21685 浏览

unit-testing - 使用 xUnit 进行单元测试异常消息

我目前正在将我的 MsTest 单元测试转换为 xUnit。使用 xUnit,有没有办法测试异常消息?测试异常消息而不是仅测试异常类型是否正确?

0 投票
1 回答
1189 浏览

c++ - Jenkins xUnit 插件问题

我安装了 Jenkins 服务器(在 Windows 7 上)和 xUnit 插件,以便将 UnitTest++ 用于我从事的 C++ 项目。

我配置作业脚本,以便 TestUnit++ 在工作区的某个目录中生成报告。但是当我激活“发布测试工具结果报告”,然后单击组合框“添加”、“UnitTest-1.4”时,什么也没有发生。没有添加任何行,实际上没有任何变化。与“添加”组合框中的任何其他选项相同。

我正确使用它吗?插件是否正确安装?依赖问题?还有其他想法吗?

谢谢

0 投票
8 回答
11318 浏览

c# - 单元测试 c# 属性

我正在使用一个有很多属性的类。例如;

现在进行单元测试;我做了类似的xUnit测试

在这里,我讨厌我如何硬编码预期 = 3。为访问器和突变器测试此属性的好方法是什么?

0 投票
3 回答
440 浏览

asp.net-mvc - ASP.NET MVC 中的单元测试

刚刚开始使用测试框架来编写单元测试以及 TDD 方法。尽管 NUnit 是最好的选择,但之前没有任何经验的人觉得选择 XUnit 会很好。试图将我在 MVC 书籍中看到的 MS 单元测试方法转换为 XUnit 等价物,并且已经跌跌撞撞。

具体如下:测试视图集合(如索引)的条目列表:

您将如何在 XUnit 中做到这一点,或者不能像这样做到这一点?

让我失望的是 XUnit 缺乏文档,我想知道 NUnit 是否是更好的选择......

此外,测试代码似乎几乎是它自己的语言。可以公平地说,所有项目都可以运行一组通用的测试吗?

关于 TDD ..我理解这个概念,但测试本身是否与单元测试在它们包含和正在测试的内容方面相同?不知道除了写出来的实际区别是什么!

0 投票
1 回答
1914 浏览

.net - 使用 xUnit.net AutoRollback 和多线程

我正在尝试使用 xUnit.net 和 xunit 扩展提供的 AutoRollback 属性编写测试用例。

我的测试用例是这样的

此测试用例在读取新线程中的数据时失败并引发连接超时异常。我发现的问题是测试用例由于 AutoRollback 属性而启动了一个事务,并且在插入数据时它会在最后锁定表以进行回滚。测试用例产生的新线程无法从同一个表中读取数据,因为它被父线程锁定。我可以在同一个线程中读取数据。

有人有解决方案吗?我想运行多个线程来读取上面插入的数据。

0 投票
3 回答
659 浏览

.net - 将 Moles 与 XUnit 一起使用 - 错误的 dll 版本

我正在尝试设置 Moles 以在我们的单元测试中使用。我们使用的是xunit,所以我是usingmole()自带的xunit扩展Microsoft.Moles.Framework.Xunit。但是,当我们运行 Xunit 1.7 时,Moles 抱怨我没有运行版本 1.6.1.1521(带有FileLoadException)。

Moles 手册(第28 页)确实说:

xUnit.net 版本:

1.5.0.1479(对于其他 xUnit.net 版本,从源重新编译属性)

这就是我卡住的地方——这个 xunit 扩展的源代码在某处可用吗?还是我必须使用 Moles 需要的特定版本的 xunit?