|  |      1leishi1313      2020-07-27 15:05:17 +08:00 via Android XY 问题,虽然图和字不少,但还是没聊清楚你到底想要干什么 | 
|  |      2LokiSharp      2020-07-27 15:08:15 +08:00 Google 搜索 “Python 单元测试” | 
|  |      3imn1      2020-07-27 15:08:45 +08:00 弱弱地问一下,你见过这句吗? if __name__ == '__main__': | 
|  |      4efaun OP | 
|  |      5efaun OP @LokiSharp #2 已经说过了,它会输出一个测试报告,且会进行断言,而我的目的不是进行单元测试,是要在一个 py 文件里单独执行不同的方法 | 
|  |      6wellsc      2020-07-27 15:13:40 +08:00 ```python def one_or_two_or_three(): if one: one() elif two: two() else: three() one_or_two_or_three() ``` 这样? | 
|  |      7efaun OP @imn1 #3 这可以实现我文中的情况,但是更复杂的无法实现,一个 py 文件里十几个方法,虽然可以在选择性执行一个的时候来来回回注释其他的方法,但是这太麻烦了,更希望有 junit 一键执行的方法 | 
|  |      8efaun OP @imn1 #3  这可以实现我文中的情况,但是更复杂的无法实现,一个 py 文件里十几个方法,虽然可以在选择性执行一个的时候来来回回注释其他的方法,但是这太麻烦了,更希望有 junit 一键执行的方法 | 
|      9GeruzoniAnsasu      2020-07-27 15:14:30 +08:00 没人看得懂想问啥 执行 one: one() (摊手) | 
|      10GeruzoniAnsasu      2020-07-27 15:15:45 +08:00  1 看起来似乎在说   必须要在 ide 里自动给每个函数弄出一个绿色三角能点? | 
|  |      11leishi1313      2020-07-27 15:16:37 +08:00 via Android @efaun 那我帮你组织下语言,你想问的是,如何在 pycharm 里执行一个 Python 文件里的某个函数,对吗? | 
|  |      13efaun OP | 
|  |      14imn1      2020-07-27 15:18:32 +08:00 if __name__ == '__main__': 下面写你想运行的东西(调用上面的函数),例如 one() three() two() 然后单独运行这个 py,它只会执行这句后面的内容 这句及下面的语句,在 import 时不执行,因为运行主体不是'__main__',所以没影响 | 
|  |      16efaun OP | 
|      18GeruzoniAnsasu      2020-07-27 15:25:34 +08:00 | 
|  |      19imn1      2020-07-27 15:26:33 +08:00  1 补个 append 吧,后面进来的人不一定看到这几楼 我不用 pycharm,所以帮不了你 | 
|  |      20efaun OP @GeruzoniAnsasu #18 使用单元测试的方法不适合我,python 的单元测试会输出断言结果,而不是代码的执行结果 | 
|      21xiaolinjia      2020-07-27 15:29:20 +08:00 doctest 、unittest | 
|  |      22Trim21      2020-07-27 15:30:16 +08:00 python 里面一般这么干: test_a.py: def test_one(): print('one') def test_two(): print(2) def test_three(): print(3) 然后 pytest -k 'one or two or three'" | 
|  |      23Trim21      2020-07-27 15:31:09 +08:00  1 pytest 只是屏蔽掉了 stdout,用-s 参数就可以正常输出了 | 
|  |      24leishi1313      2020-07-27 15:31:50 +08:00 via Android 你在 intellij 里用 JUnit 选择执行某一个函数本来就是滥用。 正规点的用法是写 run 的 configuration,然后 command line 里写-c "from xx import one; one()",要单独执行多少个写多少这样的 config | 
|  |      25efaun OP @leishi1313 #24 但是这样很方便不是么~   | 
|      27GeruzoniAnsasu      2020-07-27 15:38:59 +08:00 @efaun 然而并不   https://imgur.com/a/B4NN9he 如果单元测试吐不出 stdout 为啥你第一反应不是去找吐不出 stdout 的原因而是问有没有“其它办法”呢 话说 jetbrains IDE 旁边这些运行就是给单元测试特化的,如果不是单测文件本来就不会有这些运行按钮 | 
|      28xinyana      2020-07-27 15:41:47 +08:00 if? | 
|  |      29efaun OP @GeruzoniAnsasu #27  懂了,thx~ | 
|  |      30j0hnj      2020-07-27 15:54:46 +08:00 | 
|  |      31chinvo      2020-07-27 15:56:12 +08:00 via iPhone junut 就是单元测试 | 
|  |      32JieS      2020-07-27 17:31:28 +08:00 via iPhone pytest 也是用 @修饰符来运行方法的,跟 testng,junit 相似 |