控制台应用程序以启动CodedUI测试



我有一个编码的ui测试,我想用批处理启动它,它是一个.dll文件。

我从批处理文件调用它的原因是,在执行此测试之前,必须重新启动服务器。

这只是一个简单的call test.dll还是我必须做其他事情?

更新 找到的代码

Playback.Initialize();
TestProject.CodedUITest1 coded = new TestProject.CodedUITest1();
coded.CodedUITestMethod1();
Playback.Cleanup();

Take from Here,它缺少两个来自私有程序集的引用插件:

  1. Microsoft.VisualStudio.TestTools.UITest.Extension.Uia.dll
  2. Microsoft.VisualStudio.TestTools.UITest.Extension.IE.dll

希望这能帮助其他希望这样做的人

不能像运行exe一样运行Dll文件。Dll包含一个程序要使用的代码,这意味着一个代码源可以被多个程序使用,这样可以避免重复代码。

通常Dll会有文档化的函数,你可以通过程序调用,除非你自己构建它,在这种情况下你会知道:)

试着找到使用Dll的程序并调用它,或者找到它的文档并以@PA的身份从rundll32运行函数。建议。

DLL是动态库,需要从应用程序链接和调用。每个DLL都有自己的导出接口,或者从外部可执行文件调用的入口点集合,或者可以从另一个DLL调用。

Windows提供了一组调用来帮助调用程序加载、检测入口点和卸载DLL。除了这些有限的通用功能之外,在编程模型的几乎每一个方面,使用DLL的方式、调用约定、传递参数的方式、参数的类型、返回数据的方式、同步、通知事件、中断、多线程的方式都有无穷无尽的组合。

话虽如此,您的DLL可能会被从某些特定的应用程序调用,因此可能遵循和严格定义良好的API。其中一种类型的DLL是Windows系统DLL,旨在与rundll可执行程序一起运行。rundll32.exe是Windows系统的可执行文件,它从一个明确编程为以这种方式调用的dll中启动和调用封装在.dll文件中的函数。

要在TEST.DLL中调用TestFunction,将1234作为参数传递,您需要使用

RUNDLL32  TEST.DLL, TestFunction 1234

Rundll将为您执行以下任务

  • 通过LoadLibrary()加载TEST.DLL
  • 通过GetProcAddress()对TestFunction函数进行寻址
  • 调用TestFunction函数,传递命令行的其余部分
  • 卸载DLL并退出

最新更新