【发布时间】:2015-09-23 21:33:09
【问题描述】:
我读了又读了好几天,我放弃了。有文章告诉你如何做到这一点——几乎。如何重命名特定的结果文件,或在 MSBuild 中进行测试(其中的 TONS),或更改文件放置文件夹结构的根目录。这些答案没有帮助。我在 VS 2012 中直接测试。[SadFace] 这次谷歌不是我的朋友。
在我们的测试机器上,VS 2012 在一个长文件夹结构的底部创建测试输出文件。它看起来像这样(包括文件):
<solutionFolder>\
TestResults\
<TestNameFrom.testSettingsFileWithDateAndTime>\
In\
<GuidForThisTestRun>\
<machineName>\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
这种文件结构不仅不合理(因为测试和它的文件夹之间没有关联),而且很难导航。从 TestResults 到机器名称文件夹的任何文件夹中都没有任何内容。这意味着我们每次需要查看测试结果或将它们转发给开发人员时都必须导航三个额外的文件夹(假设我们可以弄清楚要查看哪个文件夹)。
如果运行多个测试,“In”文件夹中会有多个GUID,其中有一个名为“machine-name”的文件夹,机器名文件夹中的测试结果文件。例如(包括文件):
RegressionTesting\
TestResults\
WebRegressionTests _2015-09-23 14_27_20_\
In\
36fe2581-7e14-c3d0-b0fa-1956665ab20d\
DEV0282C\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
e3448182-eb47-1840-cbde-ca5bd5660270\
DEV0282C\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
ed71d0f3-4fc5-42ab-96e3-b68efecdf4d8\
DEV0282C\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
(还有一个“Out”文件夹,是“In”的同级文件夹,但它始终是空的。)
我想要自己指定文件夹结构,包括(除了日期和时间)测试用例名称和编号(来自 Microsoft 测试管理器),但要排除这三个空的、未使用的、无用的文件夹层.我理想的文件夹结构如下所示:
Regression\
TestResults\
64105 Delete Bumpuses Dogs 2015-09-23 14_27_20\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
通过探索,我发现 TestContext.TestResultsDirectory 包含结果文件夹的绝对路径。我考虑尝试在代码中设置文件夹名称,但 TestContext.TestResultsDirectory 是只读的。伤心。会很容易的。 . .
我还考虑过在浏览器关闭后在测试结束时手动重命名文件夹和移动文件。问题:这些文件(显然)是在某个临时文件夹中创建的,并且在用户代码退出之前不会移动到它们的文档文件夹中。
这是我读过的两页(这就是我被允许发布的全部内容!?!?):
VS2012 Unit Tests: How to change the location of the TestResults folder(可怜的托马斯从来没有得到这个问题的答案。我担心我会在同一条船上。)
【问题讨论】:
标签: c# unit-testing visual-studio-2012 web-testing regression-testing