22

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

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

4

3 回答 3

24

测试:

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

    _yourApp = ApplicationUnderTest.Launch(Path.Combine(Directory.GetCurrentDirectory(), "yourexecutablename.exe"));
  7. 在您[TestCleanup]添加以下内容:

    _yourApp.Close();

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

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

    _yourApp = ApplicationUnderTest.Launch("yourexecutablename.exe"));
  6. 在您[Teardown]添加以下内容:

    _yourApp.Close();

注意:我还没有验证 NUnit 的实现

于 2010-05-07T17:47:58.223 回答
4

正如 Zian Choy 所写,使用 Adam 提供的步骤,被测应用程序不会被复制到 .../Out 目录。以下附加步骤对我有用:

  1. 打开您的 .testsettings 文件并检查“部署”部分下的“启用部署”。
  2. 通过“添加目录...”添加您正在测试的二进制文件,例如“\AppUnderTest\bin\debug”
于 2013-02-15T10:30:11.420 回答
1

我一直在努力弄清楚如何告诉我的 CodedUI 项目从哪里启动可执行文件以及如何“正确”地执行它,因此当不同的用户在不同的工作区中运行代码时,它会自动运行,在不同的主机等。我确实想出了将可执行文件复制到共享目录中(朝着正确的方向迈进),然后记录一个从那里启动它的动作(创可贴,所以它至少适用于同一主机上的不同用户)。

以下是您的 MSTest 说明中的步骤,适用于 MS Visual Studio 2015 Enterprise IDE。可悲的是,我没有足够的“声望点”来嵌入屏幕截图——

  1. 在 MS Visual Studio IDE 中,在解决方案资源管理器中,单击您的 CodedUI 项目以突出显示它,右键单击,选择“添加”,选择“现有项目”
  2. 在 Add Existing Item 对话框中,导航到要在 CodedUI 项目中测试的可执行文件。单击文件以突出显示它,然后在对话框窗口中找到“添加”下拉列表并选择“添加为链接”,单击“确定”
  3. 返回解决方案资源管理器,再次单击 CodedUI 项目并展开它。现在您应该会看到 CodedUI 项目中列出的图标 .exe
  4. 右键单击 .exe 图标并选择“属性”
  5. 在“属性”窗口中,将 BuildAction 设置为 Content 并复制到输出目录 Copy Always

瞧!!!

于 2016-10-20T20:52:55.890 回答