小编elv*_*les的帖子

pytest使用fixtures作为参数化中的参数

我想使用fixtures作为pytest.mark.parametrize的参数或具有相同结果的东西.

例如:

import pytest
import my_package

@pytest.fixture
def dir1_fixture():
    return '/dir1'

@pytest.fixture
def dir2_fixture():
    return '/dir2'

@pytest.parametrize('dirname, expected', [(dir1_fixture, 'expected1'), (dir2_fixture, 'expected2')]
def test_directory_command(dirname, expected):
    result = my_package.directory_command(dirname)
    assert result == expected
Run Code Online (Sandbox Code Playgroud)

夹具参数的问题在于夹具的每个参数都会在每次使用时运行,但我不希望这样.我希望能够根据测试选择使用哪种灯具.

python pytest

21
推荐指数
4
解决办法
5209
查看次数

CMake zlib在Windows上构建

我正在尝试使用CMake为Windows构建zlib 1.2.8,但是我遇到了构建错误,我不知道如何修复.这是我的CMake GUI:

在此输入图像描述

这会生成没有错误,但是当我构建生成的解决方案时.我收到此错误:

2> ------ Build build:项目:zlib,配置:发布x64 ------
2>创建库C:/Users/erik/Documents/zlib/1.2.8/project/zlib-1.2. 8-vc10/Release/zlib.lib和对象C:/Users/erik/Documents/zlib/1.2.8/project/zlib-1.2.8-vc10/Release/zlib.exp
2> inflate.obj:错误LNK2019:函数inflate中引用的未解析的外部符号inflate_fast
2> infback.obj:错误LNK2001:未解析的外部符号inflate_fast
2> C:\ Users\erik\Documents\zlib\1.2.8\project\zlib-1.2.8-vc10\Release\zlib.dll:致命错误LNK1120:1个未解析的外部

我不知道如何解决这个问题,所以我感谢任何帮助.

c c++ windows zlib cmake

15
推荐指数
3
解决办法
2万
查看次数

Swift Quick/Nimble 测试未运行

我试图做一个简单的测试来看看 Quick 和 Nimble 是否正常工作,但它们没有。这是我应该打破的简单测试:

import Quick
import Nimble

class SomeSpec: QuickSpec {
    override func spec() {
        describe("bad test") {
            it("does not pass") {
                expect("good").to(equal("bad"))
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但如果我运行测试,我会看到输出:

在 0.000 (0.004) 秒内执行了 0 次测试,其中 0 次失败(0 次意外)

我不知道为什么要进行零测试。我确实使用 Swift Package Manager 安装了 Quick 和 Nimble,而不是 Cocoapods,如果这可能是问题的原因的话。

xcode unit-testing swift quick-nimble

8
推荐指数
1
解决办法
2908
查看次数

使用pdb时可以显示执行时间吗?

当使用 pdb 调试 Python 代码时,我经常希望next、 、return、等命令until能够显示直到下次 pdb 中断为止的运行时间。是否可以更改设置或编写插件来实现此目的?

python pdb

8
推荐指数
0
解决办法
475
查看次数

Windows上的CMake zlib依赖性错误

我正在尝试在Windows上构建OpenEXR 2.2,但下载附带的说明没有按预期工作.IlmBase的指令有效,但是一旦我得到OpenEXR指令,它就会因为zlib而失败.此时的步骤是:

3. Go to http://www.zlib.net and download zlib 
Run Code Online (Sandbox Code Playgroud)

所以我去了这个网站,开头的部分是:当前版本在这里公开发布:我下载了 zlib源代码,版本1.2.8,zipfile格式......

然后,我转到下一步,这是我得到错误的地方:

4. Launch a command window, navigate to the OpenEXR folder with 
CMakeLists.txt, and type command:     
    setlocal
    del /f CMakeCache.txt
    cmake 
      -DZLIB_ROOT=<zlib location>
      -DILMBASE_PACKAGE_PREFIX=<where you installed the ilmbase builds>
      -DCMAKE_INSTALL_PREFIX=<where you want to instal the openexr builds>
      -G "Visual Studio 10 Win64" ^
      ..\openexr
Run Code Online (Sandbox Code Playgroud)

所以这是我输入的命令:

cmake -DZLIB_ROOT=C:\Users\erik\Documents\zlib-1.2.8 -DILMBASE_PACKAGE_PREFIX=C:\Users\erik\Documents\ilmbase-2.2.0\bin -DCMAKE_INSTALL_PREFIX=C:\Users\erik\Documents\ilmbase-2.2.0\bin -G "Visual Studio 10 Win64" ^..\openexr-2.2.0
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

找不到ZLIB(缺少:ZLIB_LIBRARY)(找到版本"1.2.8")

第一个问题是,指令没有说明任何关于ZLIB_LIBRARY的内容.其次,zlib下载看起来像是所有源代码.不涉及.lib或.dll文件.

c++ zlib cmake openexr

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

使用字节掩码防止符号扩展

我一直在阅读Java,第2版中的TCP/IP套接字.我希望能够更清楚地了解某些内容,但由于该书的网站没有论坛或任何内容,我想我会问这里.在几个地方,本书使用字节掩码来避免符号扩展.这是一个例子:

private final static int BYTEMASK = 0xFF; //8 bits

public static long decodeIntBigEndian(byte[] val, int offset, int size) {
    long rtn = 0;
    for(int i = 0; i < size; i++) {
        rtn = (rtn << Byte.SIZE) | ((long) val[offset + i] & BYTEMASK);
    }
    return rtn;
}
Run Code Online (Sandbox Code Playgroud)

所以这是我对正在发生的事情的猜测.如果我是对的,请告诉我. BYTEMASK二进制应该看起来像00000000 00000000 00000000 11111111.为了简单起见,我们只说val字节数组只包含1个短路,因此偏移量为0.所以让我们将字节数组设置为val[0] = 11111111,val[1] = 00001111.在i = 0,全rtn是0,所以rtn << Byte.SIZE只保持值相同.然后(long)val[0]由于符号扩展而使其全部为1个8字节.但是当你使用时& …

java networking bytearray endianness

4
推荐指数
1
解决办法
2009
查看次数