每个文件的代码行,每个类的方法,圈复杂度等.开发人员抵制并解决大多数(如果不是全部的话)!有一篇很好的Joel文章(没时间找到它).
您建议使用哪些代码指标来自动识别"糟糕的代码"?
什么可以说服大多数(你不能说服我们所有人一些糟糕的指标!:O))开发人员认为这个代码是"废话".
只有可自动测量的指标才算重要!
我有一个PowerShell脚本,当我们的监控服务检测到网站关闭时,该脚本会自动运行.它应该停止AppPool(使用Stop-WebAppPool -name $AppPool;),等到它真的停止然后重新启动它.
有时它的过程实际上并没有停止,表现为错误
Cannot Start Application Pool:
The service cannot accept control messages at this time.
(Exception from HRESULT: 0x80070425)"
Run Code Online (Sandbox Code Playgroud)
当你试图再次启动它.
如果停止花费的时间超过一定的秒数(我会在经过多次停留以查看通常需要多长时间后选择那段时间),我想要终止这个过程.
我知道我可以通过这样做获取AppPool中工作人员使用的进程列表dir IIS:\AppPools\MyAppPool\WorkerProcesses\,
Process ID State Handles Start Time
---------- ----- ------- ----------
7124 Running
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何实际捕获进程ID,所以我可以杀死它.
我必须使用Windows模拟包来执行重复性任务,每次都有稍微不同的选项.
由于我讨厌重复点击,基于懒惰和人类引入的错误数量,我想自动驾驶这个程序.有问题的程序不支持脚本,没有API,没有COM,nada,nyet,nravin.据我所知,自动驱动该程序的唯一方法是模仿人(即键盘和鼠标宏).
我知道AutoHotKey,但我认为它不符合我的要求.(或者它可能会做我想要的,但它的脚本语言很糟糕.)
要求是:
必须允许操作之间的时间延迟,或事件检测以触发操作.
模拟运行最多可能需要十分钟,因此GUI驱动程序必须等到模拟完成后再开始新模拟.
一种方法是等待十分钟,并希望模拟完成.另一种方法是使其成为事件驱动的,即观察"模拟运行..."对话框消失并替换为"模拟完成"对话框.
必须允许复杂键盘输入的组合.
每次模拟运行所需的一些键盘输入是不同的.例如,模拟描述可能采用格式,[Project name][Scenario name][Option 1][Option 2]...并且必须为每个模拟输入.
我知道AutoHotKey允许基本级别的输入自定义,但我随意阅读文档使得脚本语言看起来像某种恶意恐怖.
这是为了工作,所以任何解决方案都必须免费用于商业用途.
我将接受任何符合上述标准的解决方案,但我非常喜欢可以从Python驱动的东西.但是,我也会接受自动化的GUI测试工具,我可以自定义做我想要的 - 可能是一个Win32 GUI相当于Selenium的浏览器? - 键盘宏录制器,它将生成自定义输出或其他任何有效的输出.
我正在尝试使用触摸和滑动来模拟使用adb的自动视频通话.场景:
Device1音频呼叫Device2,Device2应答,Device1请求视频呼叫(双向),Device2尝试应答并失败.有线的事情是有时它可以工作,但当设备2试图通过adb刷卡回答时,大部分都失败了.
这是代码:
@Test(timeout = 60000000)
/**
*
*/
@TestProperties(name = "Video call / Normal video call")
public void VT111_0011() throws InterruptedException, IOException, AWTException {
initTestVariable("Normal_Video_Call_Test_VT111_0011");
sleep(idleBeforeTest);
System.out.println("Starting normal video test");
Android.adbCommand(secondDevice.getDevice1(), "adb -s " + secondDevice.getDeviceID() + " shell input touchscreen swipe 355 858 590 858");
for(int i=0; i<Iteration; i++) {
moveMouse();
Jsystem.broadCastMessage("\nIteration " + i, globalVar.nameForLogFile);
cleanLogs();
firstDevice.call(secondDevice);
Thread.sleep(2000);
if(secondDevice.isRinging())
secondDevice.answerCall(1000);
else{
ringingFail();
}
// Start video by gui
Android.adbCommand(firstDevice.getDevice1(),"adb -s " + firstDevice.getDeviceID() + " shell input …Run Code Online (Sandbox Code Playgroud) 我目前正在对我的代码执行单元测试(使用PHPUnit和Jenkins),但我已经阅读了很多关于集成测试的内容.
是否有任何工具可以在PHP(最好是自动化)中执行此操作?
我将如何实施它?在任何地方都有任何好的教程吗?
我有兴趣按需制作Android应用程序.根据客户端的要求,我的网站会将JSON文件直接发送给我在Delphi中创建的Windows应用程序.这个将文件保存在Android应用程序源文件夹中,然后执行命令行告诉Android编译器生成APK文件并将其发送到我的客户端,所有这些都没有我的存在.
Android项目是用MotoDev制作的.它使用我的root中的Android SDK.
如何从我的Delphi程序中配置命令行来实现这一目的?
我还需要更改清单以放置新版本号,以便它不与其他客户端版本冲突.
是否可以从Grunt任务中启动MongoDB?基本上当我运行我的开发环境时,grunt server我希望它可以通过运行来启动MongoDB服务器mongod.
我们被要求设置从我们的一个服务器到SFTP站点的自动上传.每周一早上都会有一个文件从数据库导出到文件管理器,他们希望在星期二将文件上传到SFTP.我们使用的当前身份验证方法是用户名和密码(我相信有一个选项可以使用密钥文件,但选择了用户名/密码选项).
我想象的方法是让一个脚本坐在服务器上,由Windows任务调度程序触发,以便在特定时间(星期二)运行,该文件将获取有问题的文件,将其上传到SFTP,然后将其移动到用于备份目的的不同位置.
例如:
本地目录: C:\FileDump
SFTP目录: /Outbox/
备份目录: C:\Backup
我在这方面尝试了一些东西,WinSCP就是其中之一,以及SFTP PowerShell Snap-In,但到目前为止我没有任何工作.
这将在Windows Server 2012R2上运行.
当我运行Get-Host我的控制台主机版本是4.0.
谢谢.
我正在尝试从 cmd 运行 pytest ,当我执行pytest Login.py时,我得到了这个结果:
================================================== warnings summary ===================================================
C:\automation\test\test.py:36
C:\automation\test\test.py:36: PytestCollectionWarning: cannot collect test class 'TestMain' because it has a __init__ constructor (from: Login.py)
class TestBase():
-- Docs: https://docs.pytest.org/en/latest/warnings.html
================================================= 1 warning in 59.69s =================================================
Run Code Online (Sandbox Code Playgroud)
在 Login.py 中,我有一个导入,我认为这可能是问题所在,但我需要该导入来进行测试。有谁知道如何解决这一问题?