Console App启动CodedUI测试

时间:2012-07-13 11:10:12

标签: c# testing dll batch-file coded-ui-tests

我有一个编码的ui测试,我想从批处理开始,它是一个.dll文件。

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

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

更新 找到代码

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

Here获取,它缺少来自私人程序集的两个引用添加:

  1. Microsoft.VisualStudio.TestTools.UITest.Extension.Uia.dll
  2. Microsoft.VisualStudio.TestTools.UITest.Extension.IE.dll
  3. 希望这有助于其他人这样做

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

Windows提供了一组调用来帮助调用程序加载,检测入口点和卸载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并退出。