py.test - 常见的命令

本文详细介绍了 Py.Test 的常见命令,包括如何指定测试范围、运行特定测试函数或方法,以及如何通过表达式筛选测试。同时,还讲解了如何在测试过程中获取程序输出。

py.test - 常见的命令


指定测试范围

py.test test_mod.py   # 运行这个文件下的所有测试
py.test somepath      # 运行这个路径下的所有测试文件
py.test -k stringexpr # 只测试与 stringexpr 匹配的测试
py.test test_mod.py::test_func  # 测试指定测试文件下的测试函数
py.test test_mod.py::TestClass::test_method  # 测试指定测试文件下的指定测试类的测试方法
py.test --pyargs pkg	# 测试 pkg 文件夹下所有的测试

py.test -k 详解

py.test -k "method_a or method_b"	

测试类或函数包含 method_a 或 method_b 中的测试将被运行

py.test -k "SomeClass and no method_a"

测试类名包含 SomeClass,并且该测试类中包含 method_a 将被跳过

获取程序输出

py.test -s	# = capature=no,将不捕获输出,直接打印
  •  
<think> 我们正在处理关于Pacman游戏命令的详细解释。用户之前询问了一系列命令的含义,现在需要进一步理解不同参数组合的命令,特别是针对pacman.py和autograder.py的不同参数组合。 根据用户提供的命令列表,我们可以将其分为两类:运行游戏的命令(pacman.py)和运行自动评分器的命令(autograder.py)。 首先,我们总结pacman.py的常用参数: - -l 或 --layout:指定迷宫布局,例如testMaze, tinyMaze, mediumMaze等。 - -p 或 --pacman:指定Pacman的智能体(Agent),例如GoWestAgent, SearchAgent等。 - -a 或 --agentArgs:传递给智能体的参数,例如fn=tinyMazeSearch, heuristic=manhattanHeuristic等。 - -z:缩放图形界面的大小(0到1之间)。 - -n:运行游戏的次数(默认为1次)。 - -q:不显示图形界面(无界面模式)。 - -h:显示帮助信息。 然后,我们总结autograder.py的常用参数: - -q:指定要运行的问题编号,例如q2,表示只运行问题2的测试。 - --no-graphics:无图形界面模式(适用于自动测试或命令行环境)。 接下来,我们逐一解释用户提到的命令: 1. `python pacman.py -p ReflexAgent` - 使用反射智能体(ReflexAgent)运行游戏,默认布局为mediumClassic。 - ReflexAgent是一种基于当前状态特征进行决策的智能体,它根据特征计算得分并选择最高得分的动作。 2. `python pacman.py -p ReflexAgent -l testClassic` -testClassic布局上使用反射智能体(ReflexAgent)运行游戏。 - testClassic是一个包含食物和幽灵的经典布局,用于测试智能体的行为。 3. `python autograder.py -q q2` - 运行自动评分器,只运行问题q2的测试用例。 - 通常,在完成问题q2的代码(如ReflexAgent)后,使用此命令测试该问题的实现是否正确。 - 默认情况下,会显示图形界面(如果测试需要)。 4. `python autograder.py -q q2 --no-graphics` - 运行问题q2的测试,但不显示图形界面(无界面模式)。 - 这在远程服务器或需要批量测试时非常有用,可以加快测试速度。 下面,我们扩展一些其他常见命令: 5. `python pacman.py -p MinimaxAgent -l minimaxClassic -a depth=3` - 使用MinimaxAgent(极小极大智能体)在minimaxClassic布局上运行游戏,并设置搜索深度为3。 - 该智能体使用极小极大算法进行决策,需要指定搜索深度。 6. `python pacman.py -p AlphaBetaAgent -l smallClassic -a depth=3` - 使用AlphaBetaAgent(Alpha-Beta剪枝智能体)在smallClassic布局上运行游戏,搜索深度为3。 7. `python autograder.py -q q1 --no-graphics` - 无界面运行问题q1的测试(通常q1可能是关于DFS、BFS等搜索算法的问题)。 8. `python autograder.py --run-all` - 运行所有测试用例(所有问题)。 9. `python autograder.py --test test_cases/q2/0-small-grid` - 运行特定的测试用例(例如q2下的0-small-grid测试)。 最后,我们生成相关问题。 注意:在回答中,我们引用了用户提供的两个引用,但注意引用[2]是关于Mac运行pacman.py重启的问题,与当前问题无关,因此我们只参考引用[1]中的环境配置部分(因为运行这些命令需要Python环境)[^1]。 </think>### Pacman.py 命令解析 #### 基本游戏控制 1. **`python pacman.py`** - 启动默认游戏配置:`mediumClassic` 迷宫 + 键盘控制 + 4个幽灵 - 使用方向键手动控制Pacman移动[^2] 2. **`python pacman.py -l <布局名>`** - `-l testMaze`:小型测试迷宫(无幽灵) - `-l tinyMaze`:5×5微型迷宫 - `-l mediumMaze`:15×15中型迷宫 - `-l bigMaze`:30×30大型迷宫 - `-z .5`:窗口缩放50%(默认1.0) #### 智能体控制参数 3. **`-p <智能体类型>`**(核心参数) ```python python pacman.py -p ReflexAgent # 反射型智能体(即时决策) python pacman.py -p SearchAgent # 搜索型智能体(路径规划) python pacman.py -p GoWestAgent # 固定向西移动 python pacman.py -p StayEastSearchAgent # 优先向东移动 ``` 4. **`-a <参数传递>`**(智能体配置) ```python # 搜索算法配置 python pacman.py -a fn=bfs # 广度优先搜索 python pacman.py -a fn=ucs # 统一代价搜索 python pacman.py -a fn=astar,heuristic=manhattanHeuristic # A*算法 # 特殊问题配置 python pacman.py -a prob=CornersProblem # 角落问题模式 ``` #### 组合示例 5. **经典测试组合** ```bash # 在testMaze中用反射智能体 python pacman.py -l testMaze -p ReflexAgent # 在tinyMaze中用A*搜索 python pacman.py -l tinyMaze -p SearchAgent -a fn=astar ``` --- ### Autograder.py 命令解析 6. **基础评分命令** ```bash python autograder.py # 运行所有测试 python autograder.py -q q1 # 仅测试问题1(搜索算法) python autograder.py -q q2 # 仅测试问题2(评估函数) ``` 7. **调试模式** ```bash # 无图形界面模式(服务器测试) python autograder.py -q q2 --no-graphics # 显示详细测试过程 python autograder.py --test all --verbose ``` --- ### 问题排查命令 8. **Mac系统异常重启** ```bash # 关闭图形界面可避免崩溃[^2] python pacman.py --no-graphics # 检查Python环境依赖 pip install setuptools wheel numpy ``` 9. **环境配置建议** - 使用虚拟环境(避免依赖冲突)[^1] - IDE配置Python解释器路径(VS Code/PyCharm)[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值