gpt4 book ai didi

python - 如何在 bash 脚本中使用 Python 3.6 解释器?

转载 作者:太空狗 更新时间:2023-10-29 11:41:27 25 4
gpt4 key购买 nike

我想要一个小脚本,它将查找、运行和报告文件夹中的所有测试,就像这个:

#!/bin/bash 
coverage run -m unittest discover
coverage report -m

但是,当我运行它时,我得到了一些错误,这些错误在 Windows 上没有出现(比如使用 super() 而不带参数)。据我所知,它与以下事实有关,Linux 上 Python 的内置和默认版本是 2.x,而我使用的是 3.6。我应该如何更改脚本,以便它使用 Python 3.6 解释器?

编辑:所以这是我运行的测试文件之一:

#!/usr/bin/env python3
import unittest
import random
import math
import sort_functions as s
from comparison_functions import less, greater


class BaseTestCases:
class BaseTest(unittest.TestCase):
sort_func = None

def setUp(self):
self.array_one = [101, -12, 99, 3, 2, 1]
self.array_two = [random.random() for _ in range(100)]
self.array_three = [random.random() for _ in range(500)]
self.result_one = sorted(self.array_one)
self.result_two = sorted(self.array_two)
self.result_three = sorted(self.array_three)

def tearDown(self):
less.calls = 0
greater.calls = 0

def test_sort(self):
result_one = self.sort_func(self.array_one)
result_two = self.sort_func(self.array_two)
result_three = self.sort_func(self.array_three)
self.assertEqual(self.result_one, result_one)
self.assertEqual(self.result_two, result_two)
self.assertEqual(self.result_three, result_three)

# and some more tests here


class TestBubble(BaseTestCases.BaseTest):
def setUp(self):
self.sort_func = s.bubble_sort
super().setUp()

# and some more classes looking like this

错误:

ERROR: test_key (test_sort_func.TestBubble)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/lelik/Desktop/Sorters/test_sort_func.py", line 67, in setUp
super().setUp()
TypeError: super() takes at least 1 argument (0 given)

最佳答案

首先,为你的 python3 安装它(如果你有它并且安装了 pip)sudo python3 -m pip install coverage

然后,为了运行 python3 的覆盖率,运行 python3 -m coverage report -m

所以你的最终脚本应该是这样的:

#!/bin/bash 
python3 -m coverage run -m unittest discover
python3 -m coverage report -m

您还可以将 python3 替换为您的 pythons bin 的路径。例如 /usr/bin/python3。所以你也可以这样调用它:

#!/bin/bash 
/usr/bin/python3 -m coverage run -m unittest discover
/usr/bin/python3 -m coverage report -m

关于python - 如何在 bash 脚本中使用 Python 3.6 解释器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45507488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com