在PyCharm IDE中,如果我右键单击带有doctest的函数/方法,有时右键单击菜单会给我选项:" 运行' Doctest my_function_name&#39 ; "有时,右键单击菜单只提供运行整个文件的选项(不作为doctest)。
什么时候决定什么时候才能提供"运行doctest"选项何时不会?有没有办法以某种方式强迫它?
答案 0 :(得分:11)
通过Run Configuration在PyCharm
中运行模块(或其中的测试)。右键单击模块后,PyCharm
将搜索该模块的现有Run Configuration
。如果找到配置(这可能是由于之前的运行或手动创建Configuration
),PyCharm
将仅建议运行该配置。
例如,如果创建了module.py
的配置来运行其doctests
,那么右键点击module.py
时我们会看到这个选项。但是,如果未找到任何配置,PyCharm
建议在不同的选项中运行模块,具体取决于模块中的代码(定期运行,或运行doctests
/ unittests
)。选择一个选项后,PyCharm
会隐式创建相应的临时Run Configuration
。从这里开始,当右键单击模块时,您将只获得为该模块创建的配置。
重要的注意事项: PyCharm最多可以保存6个临时(即通过运行模块创建的Configurations
)Run Configurations
- 3" Python&# 34 ;,即脚本,以及3" Python测试"。这意味着,如果您运行moduleA.py
,moduleB.py
,moduleC.py
,然后moduleD.py
,则PyCharm中的临时Configurations
将为moduleB.py
,{ {1}}和moduleC.py
。除非明确保存,否则moduleD.py
的配置将自动删除。
此行为可以重现如下:
moduleA.py
中,创建一个新的Python模块:" temp" 2.将以下内容添加到模块中:
PyCharm
运行 - >编辑配置 - >找到模块的当前配置(通常突出显示) - >点击"减号"按钮(左上角) - >点击"应用" - >单击确定。 现在我们回到第3步。
(转载于"""
>>> print 3.14
3.14
"""
if __name__ == '__main__':
pass
5.0和4.5)
PyCharm
,PyCharm建议以任何可能的方式运行模块(作为脚本,doctests或unittests)Run Configuration
,PyCharm只会建议Run Configuration
。Configuration
并将其删除,或者创建一个新选项一个将以你想要的方式运行文件或方法/功能的文件。答案 1 :(得分:6)
如果您不想删除配置,也可以点击Run |的快捷键恢复程序(对我来说是F9)以弹出一个完整的选择列表
答案 2 :(得分:0)
如果上述无效对您没有帮助-请确保您的模块不是 not 名为Fatal Exception: java.lang.SecurityException: Binder invocation to an incorrect interface
at android.os.Parcel.nativeEnforceInterface(Parcel.java)
at android.os.Parcel.enforceInterface(Parcel.java:597)
at android.app.job.IJobService$Stub.onTransact(IJobService.java:53)
at android.os.Binder.transact(Binder.java:635)
at com.firebase.jobdispatcher.IRemoteJobService$Stub$Proxy.start(IRemoteJobService.java:106)
at com.firebase.jobdispatcher.JobServiceConnection.onServiceConnected(JobServiceConnection.java:71)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1694)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1723)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:7000)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
的模块;这会导致冲突,从而导致异常。