gpt4 book ai didi

c# - DeploymentItem 属性的问题

转载 作者:IT王子 更新时间:2023-10-29 03:36:42 25 4
gpt4 key购买 nike

我目前正在维护一个用 C#.net 编写的“旧”系统,删除一些过时的功能并进行一些重构。感谢上帝,前一个人写了一些单元测试 (MSTests)。我对 JUnit 测试非常满意,但对 MSTest 的了解还不多。

测试方法有一个 DeploymentItem 属性,指定一个文本文件,该文件由被测试的业务逻辑方法解析,第二个 DeploymentItem 其中只有一个路径指定包含一堆必须部署的 TIF 文件。

[TestMethod()]
[DeploymentItem(@"files\valid\valid_entries.txt")]
[DeploymentItem(@"files\tif\")]
public void ExistsTifTest()
{
...
}

测试之前有效,但现在我不得不更改\files\tif 目录中包含的 TIF 文件的名称。根据规则,TIF 文件名必须匹配特定模式,该模式也由 ExistsTifTest() 方法检查。现在我不得不更改文件名以使它们适应新的要求,突然之间,TIF 文件不再像以前那样部署。

有人能告诉我为什么会发生这种情况或者可能是什么原因吗?如果我在\files\valid\目录中的“valid_entries.txt”旁边添加一个新的文本文件说“my2ndTest.txt”,并且在测试方法上具有相应的 DeploymentItem 属性,也会发生同样的事情。文件未部署?

我现在通过直接在 testrunco​​nfig 中定义部署路径来部署图像,但我想了解为什么会发生这些事情,或者为什么我的新文件“my2ndTest.txt”没有部署,而其他文件做。

最佳答案

DeploymentItem 有点乱。

解决方案中的每个文件在 VS.NET 中都有一个“复制到输出文件夹”设置。您需要将其设置为“始终复制”(或类似的)才能将文件放入输出文件夹。

检查您是否为新文件准备了这组文件。如果您没有此设置,则文件不会被复制到输出文件夹,然后它们无法从输出文件夹部署到 MSTest 执行它的文件夹。

就我个人而言,如果我有单元测试所需的文件,我发现将这些文件作为资源嵌入到程序集中,并让该程序集在测试期间自行“解包”是一种更可预测的做事方式。 YMMV.

注意:这些评论基于我使用 VS2010 的经验。对我的回答的评论表明这不是 VS2012 的问题。我仍然支持以下评论,即使用嵌入式资源涉及较少的“魔法”,并且对我来说,使我的单元测试的“安排”阶段更加明确。

关于c# - DeploymentItem 属性的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/883270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com