在R#8.2.0和VS2013.3中,测试运动员我想按照Traits进行分组,就像在VS测试运行中一样:
问题:我可以让R#显示如下测试:
在R#中,我能得到的最接近的是:
测试代码是:
[Trait("Homepage", "User changes sort order to highest rating first")]
public class ChangeSortOrderToRating : IntegrationTestBaseWithData {
readonly JokeViewer viewer;
public ChangeSortOrderToRating() {
viewer = new JokeViewer(new Session());
}
[Fact(DisplayName = "Show all 3 Stories")]
public void ShowAllStories() {
List<Joke> result = viewer.ShowAllJokesHighestRatingFirst();
Assert.Equal(3, result.Count);
}
[Fact(DisplayName = "Show all Stories in rating order")]
public void ShowListOfStoriesInDescendingRankOrder() {
var result = viewer.ShowAllJokesHighestRatingFirst();
// 10,2,5 is order of insert in db
// First should be rating of 2
Assert.Equal(10, result[0].Rating);
Assert.Equal(5, result[1].Rating);
Assert.Equal(2, result[2].Rating);
}
}
安装xUnit的R#扩展名:
答案 0 :(得分:1)
如果你的意思是你想避免那里的方法名称,不幸的是,现在,这是不可能的。
ReSharper插件与xunit 1.x协同工作的方式意味着在实际运行测试之前显示名称是不可用的(因为插件使用xunit的API来定位测试,但是{ {1}}属性不能被调用,因为它查看源代码而不是编译代码。DisplayName
可能对代码做了任何事情(例如DisplayName
属性添加参数信息),因此在从代码构建测试时没有使用的值。
我希望xunit 2.x支持能解决这个问题。 2.x正在努力确保可以根据源代码分析检索所有信息,因此xunit API可以调用类似反射的抽象来获取所有信息,包括一个漂亮的显示名称。对2.x的支持目前正在进行中,测试运行良好,但仍然使用xunit 1.x来发现测试。