You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在JetBrains IDEA或PyCharm中运行指定单元测试方法

在PyCharm/IDEA中单独运行指定单元测试方法的几种方式

问题原因

你当前的代码里虽然写了只运行test_one的TestSuite,但JetBrains IDE默认会用python -m unittest命令直接扫描文件中的所有测试方法,不会执行你写的if __name__ == '__main__'逻辑,所以才会同时跑两个测试。下面是几种不用命令行的解决办法:


方法一:直接运行单个测试方法(最快捷)

打开你的测试文件,找到test_one方法的定义行:

  • 在代码左侧的行号区域(gutter)会显示一个绿色的运行小图标
  • 点击这个图标,选择「Run 'test_one'」即可,IDE会只执行这一个测试方法,无需修改任何代码

方法二:自定义unittest运行配置

如果需要频繁运行这个特定测试,可以创建专属的运行配置:

  1. 点击顶部工具栏的运行配置下拉菜单,选择「Edit Configurations...」
  2. 点击左上角的「+」按钮,选择「Python tests」→「Unittest」
  3. 在配置面板中填写:
    • Name:随便起个好认的名字,比如「Run test_one only」
    • Target:选择「Method」,然后在输入框中填写完整的方法路径,格式为文件名.Test类名.测试方法名(比如你的文件是so.py,就填so.TestMyMethods.test_one)
    • Python interpreter:选择你当前使用的Python环境
  4. 点击「Apply」保存配置,之后直接点击运行按钮就能只跑test_one

方法三:让IDE执行你写的TestSuite逻辑

如果你想保留代码里的TestSuite配置,让IDE执行脚本的main函数:

  1. 打开运行配置面板,点击「+」选择「Python」
  2. 配置项填写:
    • Name:比如「Run Custom Test Suite」
    • Script path:选择你的测试文件路径(比如C:\Users\mpx\so.py)
    • Python interpreter:对应你的环境
  3. 保存后运行,IDE就会执行你写的if __name__ == '__main__'里的逻辑,只运行test_one

你的测试代码

import unittest

class TestMyMethods(unittest.TestCase):
    def setUp(self):
        # 设置每个测试方法执行前的必要状态
        pass

    def test_one(self):
        # 测试方法
        print('Running test: one')

    def test_two(self):
        # 测试方法
        print('Running test: two')


if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(TestMyMethods('test_one'))
    unittest.TextTestRunner().run(suite)

当前异常运行输出

Testing started at 1:09 PM ...
Launching unittests with arguments python -m unittest C:\Users\mpx\so.py in C:\Users\Users

Running test: one
Running test: two


Ran 2 tests in 0.002s

OK

Process finished with exit code 0

内容的提问来源于stack exchange,提问作者rpb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 23:15:22