问题描述:
在 MacOS 上, 支持 smb & nfs;
有个 testcase 与 hardlink 相关, hardlink 只存在 nfs 上.
更不可详细描述的细节, 类似于如下:
- global parameter = smb
- def set_up(self):
- global parameter
- parameter = nfs
- return parameter
然后在 unittest.SkipIf(parameter=smb, "not support on smb")
导致无论参数 是什么 , 都会取到 smb, 而在它 skip 的这个 case 内部, parameter 已经是 nfs 了
最后查明 unittest 执行顺序:
先执行声明的全局变量 ----->unittest.skipif()------->setupClass() 内容 -----> 测试用例按字母排序执行
解决方法: 另外定义一个变量, 在函数内部判断, 如果是 smb, 就打 log, 返回.
来源: http://www.bubuko.com/infodetail-3609507.html