MSTEST.EXE最不成对的部分就是它的输出命名规范。如果你使用/RUNCONFIG选项来操作一个TESTRUNCONFIG文件,输出文件将使用在那个文件中规定的命名规范。如果你不使用/RUNCONFIG,或者设置为默认,所有的输出被写到.\TestResults\<user>_<machine> <timestamp>。我建议使用能够快速识别的名称。
MSTEST.EXE提供了/RESULTSFILE选项,但是这将导致输出文件名称丢失时间戳。另外,如果指定到/RESULTSFILE的文件名称退出,MSTEST.EXE将会失败。我所希望的就是指定一个我所集中工作的细节的名称,但是不需要手动的添加时间戳。
你可能会想可能的解决方法就是使用VSMDI测试源数据文件,这个文件你过去在测试管理器窗口中看到。事实上,MSTEST.EXE没有/TESTMETADATA选项来加载和运行测试。问题是你仅仅能指定一个VSMDI文件。
一个可能的解决方案就是创建一个单独的VSMDI文件,这个文件在你的代码里面导入所有其它的VSMDI文件。那的确可以工作,但是它也呈现出另外一个维护任务来回忆每一次你添加新的测试到代码中。
值得注意的是当运行VSMDI文件时你不能够告诉IDE或是MSTEST.EXE将输出文件放在什么位置。输出文件指向了VSMDI文件贮存的目录。建议在一个目录中保存测试,这个目录在版本控制里源代码之下,以致如果你共享项目,所有的测试代码将会跟随它。
由于VSMDI文件作为每一次测试的一部分,并且没有一种方式来集中输出,输出将围绕着你的源代码被分散。这并不是一个很大的处理,但是它意味着你必须手动的整理源树。在处理一些测试运行结果之后,我想要一种简单的方法来处理这个。
一个更好的MSTEST.EXE