我想使用 Python 脚本将文件从远程机器复制到我的本地机器。我只知道文件名的扩展名,所以我想使用通配符来表示文件名。
此外,我想直接使用SCPClient Python 库而不是os.system,如题为using wildcards in filename in filename in python in python 中所建议的那样
但是当我运行以下代码时:
from paramiko import SSHClient
import paramiko
from scp import SCPClient
with SSHClient() as ssh:
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.10.100.5', username= 'root', password='Secret')
with SCPClient(ssh.get_transport()) as scp:
scp.get(remote_path='/root/*.py', local_path='.')
Run Code Online (Sandbox Code Playgroud)
我得到一个例外
scp.SCPException: scp: /root/*.py: 没有那个文件或目录
从 shell 运行效果很好
scp root@10.10.100.5:/root/*.py 。
我想向NUnit添加一个自定义测试报告器。我已经用NUnit2完成了,但是现在我需要使用NUnit3。
要实现报告程序,我需要从框架中获取各种事件,例如测试的开始,结束和失败。
在NUnit2中,我曾经NUnitHook注册EventListener过它,效果很好。
在NUnit3中,我需要使用扩展点机制,但是当我将扩展点添加到项目中时,VisualStudio(2012旗舰版)立即无法发现NUnit测试。
[TypeExtensionPoint(Description = "Test Reporter Extension")]
public class MyTestEventListener : ITestEventListener
{
public void OnTestEvent(string report)
{
Console.WriteLine(report);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我从类中删除ITestEventListener实现声明,它将完美地重新发现测试。
[TypeExtensionPoint(Description = "Test Reporter Extension")]
public class MyTestEventListener //: ITestEventListener
{
public void OnTestEvent(string report)
{
Console.WriteLine(report);
}
}
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?有没有更好的方法来实现呢?