标签: xunit

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

我有Hudson作为持续集成服务器,我想使用选项'发布JUnit测试结果报告'.但是我不使用xUnit工具进行测试,而是使用shell脚本运行测试并以简单格式返回结果.我想创建一个脚本,将这些结果转换为JUnit格式.所以我很有趣JUnit文件必须看起来如何?

junit hudson xunit jenkins

173
推荐指数
6
解决办法
18万
查看次数

Visual Studio 2015或2017不会发现单元测试

编辑2016-10-19:

最初的问题是关于VS2015 CTP6与XUnit测试运行器特有的问题.从答案中可以清楚地看出,Visual Studio中的单元测试发现存在更广泛的问题,这可能在许多不同的情况下发生.我已经清理了我的问题以反映这一点.

我还在我自己的答案中加入了一个脚本,我今天仍然使用它来解决类似的问题.

许多其他答案也证明有助于更好地理解VS测试运行器的复杂性.我感谢人们仍在分享他们的解决方案!


原始问题2015-04-10:

从昨天开始,我的Visual Studio Test Explorer将不会发现任何项目的测试.建筑后也没有显示绿色装载栏.

当我转到Visual Studio Test Explorer并单击"全部运行",或者当我右键单击任何测试方法并选择"运行测试"时,我在输出窗口中得到以下内容:

Could not load file or assembly 'Microsoft.VisualStudio.Web.ProjectSystem, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

我在Windows 10 Pro Technical Preview上运行Visual Studio 2015 CTP 6,构建10041. .NET Framework版本似乎并不重要 - 它发生在4.0,4.5.24.6.

我尝试使用以下测试框架,所有这些都给出了相同的行为:

  • Microsoft.VisualStudio.QualityTools.UnitTestFramework v14.0.22609.0
  • xunit v2.1.0-beta1-build2945xunit.runner.visualstudio v2.1.0-beta1-build1051
  • NUnit v2.6.4NUnitTestAdapter v2.0.0

我在GitHub(xunit)上发现了一个类似的问题:无法通过xunit团队的评论发现测试#295:

请注意,据报道,Visual Studio 2015 CTP 5被一般的单元测试(不仅仅是xUnit.net)打破了,所以不要指望它可以工作.

此外,请确保您已清理Visual …

unit-testing xunit test-runner visual-studio-2015 visual-studio-2017

158
推荐指数
13
解决办法
11万
查看次数

Python在Jenkins中进行单元测试?

你如何让Jenkins执行python unittest案例?是否可以从内置unittest包中获得JUnit样式的XML输出?

python junit unit-testing xunit jenkins

129
推荐指数
4
解决办法
8万
查看次数

xUnit:断言两个List <T>是否相等?

嗨,我是TDD和xUnit的新手所以我想测试我的方法,例如:

List<T> DeleteElements<T>(this List<T> a, List<T> b);
Run Code Online (Sandbox Code Playgroud)

当然这不是真正的方法:)我可以使用任何Assert方法吗?我觉得这样的事情会很好

List<int> values = new List<int>() { 1, 2, 3 };
List<int> expected = new List<int>() { 1 };
List<int> actual = values.DeleteElements(new List<int>() { 2, 3 });

Assert.Exact(expected, actual);
Run Code Online (Sandbox Code Playgroud)

有这样的事吗?

c# xunit

92
推荐指数
4
解决办法
4万
查看次数

将复杂参数传递给[理论]

Xunit有一个很好的功能:你可以用Theory属性创建一个测试并将数据放在InlineData属性中,xUnit将生成许多测试,并测试它们.

我想有这样的事情,但参数我的方法不是"简单的数据"(如string,int,double),但我的类的列表:

public static void WriteReportsToMemoryStream(
    IEnumerable<MyCustomClass> listReport,
    MemoryStream ms,
    StreamWriter writer) { ... }
Run Code Online (Sandbox Code Playgroud)

c# unit-testing xunit xunit.net

83
推荐指数
5
解决办法
6万
查看次数

在xUnit中验证集合大小的惯用方法是什么?

我在我的测试套件中有一个类似这样的测试:

[Fact]
public void VerifySomeStuff()
{
    var stuffCollection = GetSomeStuff();

    Assert.Equal(1, stuffCollection.Count());
}
Run Code Online (Sandbox Code Playgroud)

这个测试按照我的预期工作,但是当我运行它时xUnit会输出一个警告:

警告xUnit2013:不要使用Assert.Equal()来检查集合大小.

但是,警告中没有建议替代方案,谷歌搜索会将我带到xUnit中的源代码,以便验证是否打印了此警告.

如果Assert.Equal()不是验证集合长度的正确方法,那是什么?


澄清一下:我意识到我可以通过例如提取变量或使用Assert.True(stuff.Count() == 1)替代来"欺骗"xUnit而不发出此警告.后者只是hacky,而前者感觉就像xUnit试图避免多次迭代一样IEnumerable<T>,那么这是错误的方法(因为我会分别得到编译器提示,如果这是一个问题),并且xUnit本身不应该多次评估输入(事实上,无论变量提取如何,它都可能获得相同的输入,因为C#函数调用的工作方式).

所以,我不仅仅想从我的输出中删除该警告.我的问题的答案也解释了为什么首先将警告包含在库中,以及为什么我应该使用的方法更好.

c# xunit xunit.net

83
推荐指数
3
解决办法
2万
查看次数

使用XUnit断言异常

我是XUnit和Moq的新手.我有一个方法,它将字符串作为参数.如何使用XUnit处理异常.

[Fact]
public void ProfileRepository_GetSettingsForUserIDWithInvalidArguments_ThrowsArgumentException() {
    //arrange
    ProfileRepository profiles = new ProfileRepository();
    //act
    var result = profiles.GetSettingsForUserID("");
    //assert
    //The below statement is not working as expected.
    Assert.Throws<ArgumentException>(() => profiles.GetSettingsForUserID(""));
}
Run Code Online (Sandbox Code Playgroud)

正在测试的方法

public IEnumerable<Setting> GetSettingsForUserID(string userid)
{            
    if (string.IsNullOrWhiteSpace(userid)) throw new ArgumentException("User Id Cannot be null");
    var s = profiles.Where(e => e.UserID == userid).SelectMany(e => e.Settings);
    return s;
}
Run Code Online (Sandbox Code Playgroud)

c# unit-testing xunit

82
推荐指数
3
解决办法
5万
查看次数

在Ruby的Kernel类中添加assert()方法是惯用的Ruby吗?

我通过在Ruby中编写相当于Kent Beck的xUnit来扩展我的Ruby理解.Python(Kent写入)在语言中有一个assert()方法,该方法被广泛使用.Ruby没有.我认为应该很容易添加这个但是Kernel是正确的地方吗?

顺便说一下,我知道Ruby中存在各种单元框架 - 这是学习Ruby习语的练习,而不是"完成某些事情".

ruby assert xunit

72
推荐指数
5
解决办法
3万
查看次数

xUnit还是NUnit?彼此有什么优缺点?

每个框架的优点和缺点是什么,相互比较?他们使用ASP.NET MVC的效果如何?他们支持嘲笑的程度如何?

c# testing nunit unit-testing xunit

58
推荐指数
2
解决办法
5万
查看次数

nUnit vs xUnit?

nUnitxUnit.net之间的区别在哪里?开发其中两个有什么意义,不仅仅是一个?

我已经读过xUnit是由nUnit的发明者开发的:

xUnit.net是.NET Framework的单元测试工具.NUnit 的原始发明者撰写

另一方面:

NUnit是所有.Net语言的单元测试框架..当前的生产版本2.6,是这个基于xUnit的单元测试工具的第七个主要版本

那真相在哪里?

.net c# nunit xunit

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