如何从Visual Studio中的Xunit测试引用测试文件?

安德鲁夫

我们正在使用Xunit进行测试。我们正在使用Xunit插件通过内置的Visual Studio 2013 Test Runner运行测试。

问题是某些测试需要引用文件系统上的文件在执行测试之前,似乎Xunit(或VS Test Runner-不确定是哪个)将程序集(而不将bin目录中的任何支持文件)复制到另一个目录中,因此找不到我们的测试文件。[MS测试框架为列出要复制的文件指定属性,但Xunit没有。

如何要么禁用此复制行为,否则编程方式确定原bin/来获取文件目录位置?

似乎大多数提议的解决方案(包括Xunit Bug-tracker站点上的建议)都建议将文件存储为嵌入式资源,而不是“始终复制”文件。但是,这并不总是可行的,例如:测试文件操作代码,以及(一种情况下)需要Sqlite数据库文件的代码。

安德鲁夫

好吧,典型的是,只要我发布问题,我就自己找到答案...

要点是程序集的复制(影子复制)似乎是由.NET框架完成的,而不是由Visual Studio或Xunit完成的。

我们一直Assembly.Location在寻找程序集文件,因此是测试文件。但是,这是错误的,因为它为我们提供了阴影复制组件的位置,而不是原始位置。

相反,您应该使用Assembly.CodeBase来获取基本程序集代码位置。但是,这是(文件)URL,因此有必要从URL中提取路径。新的(C#)代码如下所示:

var codeBaseUrl = new Uri(Assembly.GetExecutingAssembly().CodeBase);
var codeBasePath = Uri.UnescapeDataString(codeBaseUrl.AbsolutePath);
var dirPath = Path.GetDirectoryName(codeBasePath);
return Path.Combine(dirPath, relativePath);

relativePath相对于Bin\目录的路径在哪里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从Visual Studio中的Xunit测试引用测试文件?

来自分类Dev

如何在Visual Studio中运行XUnit测试?

来自分类Dev

XUnit的Visual Studio负载测试

来自分类Dev

在.NET Core和Visual Studio Code中调试xUnit测试

来自分类Dev

如何在MS Visual Studio单元测试中引用数据源目录?

来自分类Dev

Visual Studio 2015 RC1 Update 1中的XUnit找不到测试

来自分类Dev

xUnit.net v2在Visual Studio 2015中找不到.NET Core测试

来自分类Dev

如何测试在xUnit中不会触发事件?

来自分类Dev

visual studio 2015没有看到我的xunit测试

来自分类Dev

如何为目录中的每个文件运行 Visual Studio 单元测试?

来自分类Dev

如何在Visual Studio中运行单个Google测试?

来自分类Dev

如何使用Visual Studio Code调试JavaScript中的摩卡测试?

来自分类Dev

如何禁用自动保存测试文件以进行 Visual Studio 代码扩展测试

来自分类Dev

在Visual Studio测试中,如何制作自动排除某些测试的播放列表?

来自分类Dev

在Visual Studio测试中,如何制作自动排除某些测试的播放列表?

来自分类Dev

如何在Visual Studio 2013中为多个SQL单元测试编写“预测试”?

来自分类Dev

如何在Visual Studio负载测试中初始化每个Web测试

来自分类Dev

如何在 Visual Studio 测试控制器中自动删除测试结果

来自分类Dev

在Visual Studio 2013中向我的单元测试项目添加引用时出错

来自分类Dev

Visual Studio 2012顺序测试,如何监视测试执行

来自分类Dev

Visual Studio 2012顺序测试,如何监视测试执行

来自分类Dev

如何防止Visual Studio向我的单元测试项目添加引用?

来自分类Dev

平均 Visual Studio测试中的测试时间(秒)

来自分类Dev

如何在F#中运行XUnit测试

来自分类Dev

如何在xunit中测试是否引发了Event?

来自分类Dev

如何在XUnit中编写端到端测试

来自分类Dev

如何使用FluentAssertions在XUnit中测试MediatR处理程序

来自分类Dev

负载测试Visual Studio中的用户分布

来自分类Dev

测试在Visual Studio 2013中消失

Related 相关文章

  1. 1

    如何从Visual Studio中的Xunit测试引用测试文件?

  2. 2

    如何在Visual Studio中运行XUnit测试?

  3. 3

    XUnit的Visual Studio负载测试

  4. 4

    在.NET Core和Visual Studio Code中调试xUnit测试

  5. 5

    如何在MS Visual Studio单元测试中引用数据源目录?

  6. 6

    Visual Studio 2015 RC1 Update 1中的XUnit找不到测试

  7. 7

    xUnit.net v2在Visual Studio 2015中找不到.NET Core测试

  8. 8

    如何测试在xUnit中不会触发事件?

  9. 9

    visual studio 2015没有看到我的xunit测试

  10. 10

    如何为目录中的每个文件运行 Visual Studio 单元测试?

  11. 11

    如何在Visual Studio中运行单个Google测试?

  12. 12

    如何使用Visual Studio Code调试JavaScript中的摩卡测试?

  13. 13

    如何禁用自动保存测试文件以进行 Visual Studio 代码扩展测试

  14. 14

    在Visual Studio测试中,如何制作自动排除某些测试的播放列表?

  15. 15

    在Visual Studio测试中,如何制作自动排除某些测试的播放列表?

  16. 16

    如何在Visual Studio 2013中为多个SQL单元测试编写“预测试”?

  17. 17

    如何在Visual Studio负载测试中初始化每个Web测试

  18. 18

    如何在 Visual Studio 测试控制器中自动删除测试结果

  19. 19

    在Visual Studio 2013中向我的单元测试项目添加引用时出错

  20. 20

    Visual Studio 2012顺序测试,如何监视测试执行

  21. 21

    Visual Studio 2012顺序测试,如何监视测试执行

  22. 22

    如何防止Visual Studio向我的单元测试项目添加引用?

  23. 23

    平均 Visual Studio测试中的测试时间(秒)

  24. 24

    如何在F#中运行XUnit测试

  25. 25

    如何在xunit中测试是否引发了Event?

  26. 26

    如何在XUnit中编写端到端测试

  27. 27

    如何使用FluentAssertions在XUnit中测试MediatR处理程序

  28. 28

    负载测试Visual Studio中的用户分布

  29. 29

    测试在Visual Studio 2013中消失

热门标签

归档