当我创建测试用例时,MSTM会自动创建两个测试:一个用于sql Server,另一个用于Oracle.它们具有相同的ID,这意味着它们是相同的测试.到现在为止还挺好.那就是应该发生的事情.
但我想自动化两个测试.当我创建代码并将其与测试用例相关联时,两个测试都会获得自动代码.这很糟糕,因为我希望测试1在sql上运行,测试2在Oracle上运行,他们共享相同的测试代码.
解决方法
创建两个不同的测试用例,一个用于sqlServer,一个用于Oracle,然后由Test1首先自动化,第二个由Test2自动化.因此,您可以通过使用DefaultLabTemplate11的单个构建定义来运行它们.
使用建议的方法,测试代码不必实现额外的逻辑,以便识别它们应该运行在哪个数据库上.
您说您希望将测试用例用于手动和自动测试,因此我认为您今天拥有的测试用例包含几个描述如何手动运行测试的测试步骤.
在这种情况下,您可以克隆现有的测试用例并使用共享的测试步骤,但在添加/删除某些测试步骤时仍需要更新两个测试用例…这将是建议方法的唯一缺点.
为了摆脱这个缺点,你可以创建“手动数据库测试”测试用例,分配你已经拥有的两个配置,并仅用于手动测试.此测试用例将包含测试人员的所有测试步骤.
然后创建我上面描述的两个测试用例,自动化它们并仅将它们用于自动化测试.
选项2
如果您的测试环境是虚拟机,则可以避免创建两个测试用例:
>将连接字符串存储在测试环境中的文件中,让测试读取此文件.
>创建两个快照:第一个包含sqlServer连接字符串的文件,第二个包含Oracle连接字符串.
>创建两个构建定义,一个将环境恢复为第一个快照,第二个将其还原为第二个快照.
通过这种方式,您可以保留单个测试用例,但另一方面,如果构建定义应该在部署和运行测试之前构建源代码,那么有两个构建定义可能会变得不方便.
嗯……第三个选项是在测试中实现额外的逻辑,以便识别它运行的数据库.
但在这种情况下,您还必须创建两个构建定义,因为您有两个配置,并且每个构建定义只能选择一个.
(我希望我能够很好地描述它,不要犹豫,问它还有什么不清楚).