小编Bri*_*ley的帖子

无法覆盖Swift XCTestCase中的init()函数

由于某些原因,我想在UI测试中覆盖XCTestCase的init函数:

  • 要在setUp()之外启动应用程序,这样就无需为每个测试重新启动应用程序(这很繁琐,而且会降低测试速度)
  • 要初始化提供通过应用程序的常规导航的其他类,必须使用测试用例(self)进行初始化。

我现在看起来像这样:

import XCTest

class UITest: XCTestCase {

    let app = XCUIApplication()

    // Helper packages
    var helper: UITestHelper!

    override func setUp() {
        super.setUp()

        // Helper package instantiation
        helper = UITestHelper(withTestCase: self, forApp: app)

        continueAfterFailure = false
        app.launch()
    }

... tearDown(), tests ....
Run Code Online (Sandbox Code Playgroud)

当我打电话时:

override init() {
    super.init()
    foo()
}
Run Code Online (Sandbox Code Playgroud)

我懂了 Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

xcode ios swift xcode-ui-testing

7
推荐指数
1
解决办法
512
查看次数

golang exec 命令:将输出流式传输到 stdout *并*捕获变量中的输出

我正在用 go 构建一个 cli 并遇到以下情况。我正在从 go 调用 bash 命令,提示用户登录,然后在登录后打印令牌。例如:

cmd := exec.Command("vault", "login", "-method=okta", "-format=json", "username=abc")
cmd.Stdin = os.Stdinout
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
_ = cmd.Run()
Run Code Online (Sandbox Code Playgroud)

这很好地流式传输了输出,但是在用户登录后,我无法从命令的输出中解析令牌。我尝试将其包装到像这样这样cmd.Run()管道函数中,但在这两种情况下返回的输出都是空的。有任何想法吗?

谢谢!

go

6
推荐指数
1
解决办法
4624
查看次数

python AWS boto3为文件上传创建预先签名的url

我正在为客户端将视频文件上传到 s3 的应用程序编写 django 后端。我想使用预先签名的 url,因此 django 服务器将对 url 进行签名并将其传递回客户端,然后客户端将他们的视频上传到 s3。问题是, generate_presigned_url 方法似乎不知道 s3 客户端 upload_file 方法......

按照这个例子,我使用下面的代码来生成上传的 url:

s3_client = boto3.client('s3')
try:
    s3_object_name = str(uuid4()) + file_extension
    params = {
        "file_name": local_filename,
        "bucket": settings.VIDEO_UPLOAD_BUCKET_NAME,
        "object_name": s3_object_name,
    }
    response = s3_client.generate_presigned_url(ClientMethod="upload_file",
                                                Params=params,
                                                ExpiresIn=500)
except ClientError as e:
    logging.error(e)
    return HttpResponse(503, reason="Could not retrieve upload url.")
Run Code Online (Sandbox Code Playgroud)

运行它时,我收到错误:

文件“/Users/bridgedudley/.local/share/virtualenvs/ShoMe/lib/python3.6/site-packages/botocore/signers.py”,第 574 行,在 generate_presigned_url operation_name = self._PY_TO_OP_NAME[client_method] KeyError: 'upload_file '

触发异常:

botocore.exceptions.UnknownClientMethodError:客户端没有方法:upload_file

调试后,我发现 self._PY_TO_OP_NAME 字典仅包含此处提供的 s3 客户端命令的一个子集: 在此处输入图片说明

向下滚动到“上传”... 在此处输入图片说明

没有upload_file 方法!我使用“list_buckets”尝试了相同的代码,它工作得很好,给了我一个预先签名的 …

python file-upload amazon-s3 pre-signed-url boto3

2
推荐指数
1
解决办法
5571
查看次数