首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修复python/nose2 2/bin/nose2 2:找不到

修复python/nose2 2/bin/nose2 2:找不到
EN

Stack Overflow用户
提问于 2017-03-17 07:48:57
回答 1查看 421关注 0票数 0

我正在OOP中进行测试,在那里我需要创建一个ShoppingCart。

我已经编写了代码,它通过了单元测试的所有测试,但是当我尝试提交时,我得到了这个错误/错误。

/bin/sh: 1: python/nose2 2/bin/nose2 2:未找到

下面我展示了我的代码和单元。最团结

代码语言:javascript
运行
复制
import unittest


class ShoppingCartTestCases(unittest.TestCase):

def setUp(self):
    self.cart = ShoppingCart()
    self.shop = Shop()

def test_cart_property_initialization(self):
    self.assertEqual(self.cart.total, 0, msg='Initial value of total not correct')
    self.assertIsInstance(self.cart.items, dict, msg='Items is not a dictionary')

def test_add_item(self):
    self.cart.add_item('Mango', 3, 10)

    self.assertEqual(self.cart.total, 30, msg='Cart total not correct after adding items')
    self.assertEqual(self.cart.items['Mango'], 3, msg='Quantity of items not correct after adding item')

def test_remove_item(self):
    self.cart.add_item('Mango', 3, 10)
    self.cart.remove_item('Mango', 2, 10)

    self.assertEqual(self.cart.total, 10, msg='Cart total not correct after removing item')
    self.assertEqual(self.cart.items['Mango'], 1, msg='Quantity of items not correct after removing item')

def test_checkout_returns_correct_balance(self):
    self.cart.add_item('Mango', 3, 10)
    self.cart.add_item('Orange', 16, 10)

    self.assertEqual(self.cart.checkout(265), 75, msg='Balance of checkout not correct')
    self.assertEqual(self.cart.checkout(25), 'Cash paid not enough', msg='Balance of checkout not correct')

def test_shop_is_instance_of_shopping_cart(self):
    self.assertTrue(isinstance(self.shop, ShoppingCart), msg='Shop is not a subclass of ShoppingCart')

def test_shop_remove_item_method(self):
    for i in range(15):
        self.shop.remove_item()

    self.assertEqual(self.shop.quantity, 85)

myCOde

代码语言:javascript
运行
复制
class ShoppingCart(object):

    def __init__(self):
        self.total = 0
        self.items = {}

    def add_item(self, item_name, quantity, price):
        if item_name and quantity >= 1:
            self.items.update({item_name : quantity})
        if quantity and price >= 1:
            self.total += (quantity * price)

    def remove_item(self, item_name, quantity, price):
        self.total -= (quantity * price)
        if quantity >= self.items[item_name]:
            try:
                del self.items[item_name]
            except (KeyError, ValueError):
                return None
        self.items[item_name] -= quantity

    def checkout(self, cash_paid):
        balance = 0
        if cash_paid < self.total:
            return "Cash paid not enough"
        balance = cash_paid - self.total
        return balance

class Shop(ShoppingCart):

    def __init__(self):
        ShoppingCart.__init__(self)
        self.quantity = 100

    def remove_item(self):
        self.quantity -= 1
EN

回答 1

Stack Overflow用户

发布于 2017-03-18 18:59:51

问题的根源在于unittest类中的setUp()方法。因此,在python开发环境(如空闲)上运行unittest类将进一步暴露问题。完全的错误实际上是这样的

“Desktop/practice python/ setUp pingcarttestCases.py”,第4行,在setUp self.cart = ShoppingCart() NameError中:未定义全局名称'ShoppingCart‘“

解决方案可能围绕正确定义/继承/实现类购物车。

我希望这能缩小范围。如果你觉得这有帮助,你得到了一个解决方案,请张贴在论坛上以及。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42851987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档