我正在生成 html 格式的覆盖率报告。现在我想看看哪个测试运行了代码,所以添加了这个更改,.coveragerc 文件
[run]
dynamic_context = test_function
Run Code Online (Sandbox Code Playgroud)
并在命令中显示上下文标志,覆盖率 html -i --data-file=.coverage1 --show-contexts
运行命令后我看到这个警告,
/usr/local/lib/python3.8/dist-packages/coverage/html.py:59: CoverageWarning: No contexts were measured
self.coverage._warn("No contexts were measured")
Run Code Online (Sandbox Code Playgroud)
我看到的报告中,1ctx 是 test_function,但不是正在执行代码的测试。

这个警告是什么意思。如何纠正。我尝试将 .coveragerc 放在测试文件夹、应用程序文件夹和根文件夹中
从这样的列表中:
mylist = [{'x':2020 , 'y':20},{'x':2020 , 'y':30},{'x':2021 , 'y':10},{'x':2021 , 'y':5}]
Run Code Online (Sandbox Code Playgroud)
我想保持所有“x”唯一,并且“y”是“x”相同的最大值。
我试图将输出获取为:
mylist_unique = [{'x':2020 , 'y':30},{'x':2021 , 'y':10}]
Run Code Online (Sandbox Code Playgroud)
我以一种非常天真的方式实现了它:
res =[]
temp = {}
print(len(temp))
for i in range(len(mylist)):
print(mylist[i])
for k,v in mylist[i].items():
print(mylist[i]['x'],temp.keys(),mylist[i]['y'])
if mylist[i]['x'] not in temp.keys() or mylist[i]['y'] > (temp[mylist[i]['x']]) :
print(k)
temp.update({mylist[i]['x']:mylist[i]['y']})
print(temp)
for k,v in temp.items():
res.append({'x':k,'y':v})
print(res)
Run Code Online (Sandbox Code Playgroud)