Visual Studio 2010 编码 UI 测试 - 启动引用应用程序

22

我正在使用Visual Studio的Coded UI Tests在我的TFS服务器上每次构建运行时自动运行WPF应用程序的UI测试。 我遇到的问题是根据它刚刚构建的路径(包括x86和x64配置),动态启动可执行文件。

是否有办法获取引用项目中可执行文件的路径,以便我可以从我的测试项目动态启动应用程序?

3个回答

24

MSTest:

  1. 打开你的.testsettings文件,并在部署部分勾选“启用部署”选项。
  2. 在你的测试项目中右键点击,选择“添加现有项”。
  3. 浏览到需要测试的应用程序的构建位置。
  4. 找到你的可执行文件并选择“添加为链接”(如果你的测试项目尚未引用所有依赖的DLL,则确保包括它们)。
  5. 右键单击可执行文件链接,选择“始终复制”(这将在构建时将新版本的.exe文件复制到你的测试bin目录中)。
  6. 在你的 [TestInitialize] 中添加以下内容来启动你的应用程序:

    _yourApp = ApplicationUnderTest.Launch(Path.Combine(Directory.GetCurrentDirectory(), "yourexecutablename.exe"));
  7. 在你的[TestCleanup]方法中添加以下代码:

  8. _yourApp.Close();

NUnit:(您需要引用和使用Microsoft.VisualStudio.TestTools.UITesting)

  1. 在您的测试项目中右键单击并选择“添加现有项”。
  2. 浏览到要测试的应用程序的构建位置。
  3. 找到可执行文件并选择“添加为链接”(确保如果您的测试项目尚未引用所有应用程序相关DLL,则包括它们)。
  4. 右键单击可执行文件的链接并选择“始终复制”(这将在构建时将新版本的.exe复制到您的测试bin目录中)
  5. 在您的 [Setup] 中添加以下内容以启动您的应用程序:

_yourApp = ApplicationUnderTest.Launch("yourexecutablename.exe"));
  • 在你的[Teardown]中,你添加了以下内容:

  • _yourApp.Close();
    注意:我没有验证NUnit实现


    仅供VB .Net用户参考:在测试类内部添加一个内部变量(例如“Private myApp”),而不是使用方括号,使用<>(例如“<TestCleanup()>”而不是“[TestCleanup]”),步骤4和5无法完成。 - Zian Choy
    @Zian Choy - 您可以像平常一样构建可执行项目,然后在添加链接到.exe文件时,需要在其构建配置的构建路径中找到它。例如,c:\ myapp \ bin \ debug \ myapp.exe。 - Adam
    啊,我在添加EXE文件的时候犯了一个错误。 - Zian Choy
    4
    无效,即使将EXE文件作为链接添加并将复制设置设置为“始终复制”,该文件也无法复制到[VS乱码]/Out文件夹。 - Zian Choy

    4

    正如Zian Choy所述,使用Adam提供的步骤,测试应用程序未被复制到.../Out目录。

    以下额外的步骤适用于我:

    1. 打开您的.testsettings文件,并在“部署”部分下检查“启用部署”。
    2. 通过“添加目录...”添加您要测试的二进制文件,例如"\AppUnderTest\bin\debug"

    1
    我已经苦苦思索了一段时间,试图弄清楚如何告诉我的CodedUI项目从哪里启动可执行文件以及如何做到“正确”,这样当不同用户在不同的工作区、不同的主机上运行代码时,它就可以自动工作。我确实想出了将可执行文件复制到共享目录(朝着正确的方向迈出了一步),然后记录一个操作从那里启动它(贴上绷带,所以它至少适用于同一主机上的不同用户)。
    以下是您的MSTest说明书中的步骤,适用于MS Visual Studio 2015 Enterprise IDE。遗憾的是,我没有足够的“声望点”来嵌入屏幕截图。
    1. 在MS Visual Studio IDE中,打开解决方案资源管理器,单击您的CodedUI项目以突出显示它,右键单击,选择“添加”,选择“现有项”
    2. 在“添加现有项”对话框中,导航到您要在CodedUI项目中测试的可执行文件。单击文件以突出显示它,然后在对话框窗口上找到“添加”下拉列表,并选择“添加为链接”,单击确定
    3. 返回解决方案资源管理器,再次单击CodedUI项目并展开它。现在您应该看到一个.exe图标列在CodedUI项目中
    4. 右键单击.exe图标,选择“属性”
    5. 在属性窗口中,将BuildAction设置为Content,将Copy设置为Output Directory Copy Always

    完成!!!


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接