zoukankan      html  css  js  c++  java
  • 笨办法47自动化测试

    目录结构:

    ex47/
        ex47/
           __init__.py
           game.py
        bin/
        docs/
        setup.py
        tests/
           ex47_tests.py
           __init__.py

    game.py文件:

    class Room(object):
        def __init__(self, name, description):
            self.name = name
            self.description = description
            self.paths = {}
    
        def go(self, direction):
            return self.paths.get(direction, None)
    
        def add_paths(self, paths):
            self.paths.update(paths)

    ex47_tests.py

    # coding:utf-8
    from nose.tools import *
    from ex47.game import Room
    
    
    def test_room():
        gold = Room("GoldRoom",
                    """This room has gold in it you can crab. 
                    There's a door to the north.""")
        assert_equal(gold.name, "GoldRoom")
        assert_equal(gold.paths, {})
    
    
    def test_room_paths():
        center = Room("Center", "Test room in the center.")
        north = Room("North", "Test room in the north.")
        south = Room("South", "Test room in the south.")
    
        center.add_paths({'north': north, 'south': south})
        assert_equal(center.go('north'), north)
        assert_equal(center.go('south'), south)
    
    
    def test_map():
        start = Room("Start", "You can go west and down a hole.")
        west = Room("Trees", "There are trees here, you can go east.")
        down = Room("Dungeon", "It's dark down here, you can go up.")
    
        start.add_paths({'west': west, 'down': down})
        west.add_paths({'east': start})
        down.add_paths({'up': start})
    
        assert_equal(start.go('west'), west)
        assert_equal(start.go('west').go('east'), start)
        assert_equal(start.go('down').go('up'), start)

    运行结果:

    (lpthw) C:Python37Scriptsprojectsex47>nosetests
    ...
    ----------------------------------------------------------------------
    Ran 3 tests in 0.034s
    
    OK

    直接执行脚本ex47_tests.py时有如下报错:

    (lpthw) C:Python37Scriptsprojectsex47	ests>python ex47_tests.py
    Traceback (most recent call last):
      File "ex47_tests.py", line 3, in <module>
        from ex47.game import Room
    ModuleNotFoundError: No module named 'ex47'

    追踪原因就是 game.py路径未加到python搜索路径中

    修改代码:

    # coding:utf-8
    from nose.tools import *
    
    import nose
    import sys
    sys.path.append("../ex47")
    
    from game import Room
    
    
    def test_room():
        gold = Room("GoldRoom",
                    """This room has gold in it you can crab. 
                    There's a door to the north.""")
        assert_equal(gold.name, "GoldRoom")
        assert_equal(gold.paths, {})
    
    
    def test_room_paths():
        center = Room("Center", "Test room in the center.")
        north = Room("North", "Test room in the north.")
        south = Room("South", "Test room in the south.")
    
        center.add_paths({'north': north, 'south': south})
        assert_equal(center.go('north'), north)
        assert_equal(center.go('south'), south)
    
    
    def test_map():
        start = Room("Start", "You can go west and down a hole.")
        west = Room("Trees", "There are trees here, you can go east.")
        down = Room("Dungeon", "It's dark down here, you can go up.")
    
        start.add_paths({'west': west, 'down': down})
        west.add_paths({'east': start})
        down.add_paths({'up': start})
    
        assert_equal(start.go('west'), west)
        assert_equal(start.go('west').go('east'), start)
        assert_equal(start.go('down').go('up'), start)
    
    
    if __name__ == "__main__":
        nose.runmodule()

    运行结果:(需更改路径运行)

    (lpthw) C:Python37Scriptsprojectsex47	ests>nosetests
    ...
    ----------------------------------------------------------------------
    Ran 3 tests in 0.001s
    
    OK
    
    (lpthw) C:Python37Scriptsprojectsex47	ests>python ex47_tests.py
    ...
    ----------------------------------------------------------------------
    Ran 3 tests in 0.001s
    
    OK
  • 相关阅读:
    服务器的Redis连接不上解决方案
    给大家推荐一个很好的自学网站
    简单说下HashMap的实现原理
    LinkedList源码解析
    你要了解的jvm
    单例设计
    百度编辑器删除旧的图片
    Ueditor 单图、多图、视频、附件的上传及在线管理总结
    上传新图片删除旧图片
    webapi发布IIS时出现500.19错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny")或者是通过包含overrideModeDefault="Deny"....
  • 原文地址:https://www.cnblogs.com/p36606jp/p/15113377.html
Copyright © 2011-2022 走看看