使用 PyDev 在 Eclipse 中交互式测试代码部分(操作方法和最佳实践)
Interactively testing code sections in Eclipse with PyDev (how-to and best practices)
一些背景: 我正在从使用 R + RStudio 进行所有数据分析任务过渡到尝试使用 Python(pandas,主要是) + Eclipse 与 PyDev。由于 RStudio,我习惯了一个工作流程,其中涉及编写一些代码,并通过 运行 逐块地测试我不确定的部分,进行我需要做的任何修复,然后继续。 RStudio 确实有助于(实际上,可能训练了我)做到这一点,因为我没有接受过任何正式的 CS 培训,这就是我现在的想法。
我有两个问题(一个是实践性的,另一个是哲学性的):
1.) 如何让 Eclipse + PyDev 中的交互式控制台识别较大脚本中的变量?我知道 ctrl + alt + enter 会调出交互式控制台,但一旦我回到我的脚本中进行修补,我就无法让它停留,而且它也无法识别之前 运行 的任何内容。因此,如果我想测试我在特定数据列上定义的函数的使用,我必须 copy/paste 将该函数输入控制台(以及任何依赖项,如导入模块)。
2.) Python 用户改为使用什么工作流程?我觉得这种对手动猜测和检查测试的依赖并不是实际编程的人所做的,我想过渡到更好的做法。但到目前为止,我发现在我做出更改后从头开始重新运行整个脚本有点浪费,因为我宁愿只磨练我正在积极处理的部分。
执行 Ctrl+Alt+Enter 后,您应该能够:
让Ctrl+Alt+Enter在控制台执行整个文件,这样你就可以使用它的功能了。
将光标放在任何一行上并按 F2 以便它会在控制台上执行该行并转到下一行(因此,您可以通过按 F2 来编写代码块逐行执行)。
请注意,如果您愿意,如果您在首选项 > pydev > 交互式控制台页面选中 'Connect console to a Debug Session?',则可能会看到来自 shell 的局部变量。
现在,这是对慢速数据进行探索性测试的合理方法(您通常加载慢速数据并更改内存中的数据),但对于快速代码,我建议创建测试用例和然后 运行 进行这些测试(我建议使用 pytest:http://pytest.org,但 unittest 也可以)...在这种情况下,您还可以为后代存储测试,您可以重新 运行 以确保您在代码发展过程中没有破坏任何东西。
请注意,如果您决定使用 pytest,则必须转到首选项 > PyDev > PyUnit 并将测试 运行ner 设置为 PyTest。请注意,PyDev 使得 运行 只是您想要的测试变得非常简单(您可以在测试文件中使用 Ctrl+Shift+Up/Down select 测试方法,然后使用 Ctrl+F9 来运行 它...如果您愿意,您可以使用 Ctrl+F11 重新 运行 稍后或 F11 使用断点调试它,前提是您按照描述配置 "Always launch the previously launched application"在 http://www.pydev.org/manual_101_run.html).
一些背景: 我正在从使用 R + RStudio 进行所有数据分析任务过渡到尝试使用 Python(pandas,主要是) + Eclipse 与 PyDev。由于 RStudio,我习惯了一个工作流程,其中涉及编写一些代码,并通过 运行 逐块地测试我不确定的部分,进行我需要做的任何修复,然后继续。 RStudio 确实有助于(实际上,可能训练了我)做到这一点,因为我没有接受过任何正式的 CS 培训,这就是我现在的想法。
我有两个问题(一个是实践性的,另一个是哲学性的):
1.) 如何让 Eclipse + PyDev 中的交互式控制台识别较大脚本中的变量?我知道 ctrl + alt + enter 会调出交互式控制台,但一旦我回到我的脚本中进行修补,我就无法让它停留,而且它也无法识别之前 运行 的任何内容。因此,如果我想测试我在特定数据列上定义的函数的使用,我必须 copy/paste 将该函数输入控制台(以及任何依赖项,如导入模块)。
2.) Python 用户改为使用什么工作流程?我觉得这种对手动猜测和检查测试的依赖并不是实际编程的人所做的,我想过渡到更好的做法。但到目前为止,我发现在我做出更改后从头开始重新运行整个脚本有点浪费,因为我宁愿只磨练我正在积极处理的部分。
执行 Ctrl+Alt+Enter 后,您应该能够:
让Ctrl+Alt+Enter在控制台执行整个文件,这样你就可以使用它的功能了。
将光标放在任何一行上并按 F2 以便它会在控制台上执行该行并转到下一行(因此,您可以通过按 F2 来编写代码块逐行执行)。
请注意,如果您愿意,如果您在首选项 > pydev > 交互式控制台页面选中 'Connect console to a Debug Session?',则可能会看到来自 shell 的局部变量。
现在,这是对慢速数据进行探索性测试的合理方法(您通常加载慢速数据并更改内存中的数据),但对于快速代码,我建议创建测试用例和然后 运行 进行这些测试(我建议使用 pytest:http://pytest.org,但 unittest 也可以)...在这种情况下,您还可以为后代存储测试,您可以重新 运行 以确保您在代码发展过程中没有破坏任何东西。
请注意,如果您决定使用 pytest,则必须转到首选项 > PyDev > PyUnit 并将测试 运行ner 设置为 PyTest。请注意,PyDev 使得 运行 只是您想要的测试变得非常简单(您可以在测试文件中使用 Ctrl+Shift+Up/Down select 测试方法,然后使用 Ctrl+F9 来运行 它...如果您愿意,您可以使用 Ctrl+F11 重新 运行 稍后或 F11 使用断点调试它,前提是您按照描述配置 "Always launch the previously launched application"在 http://www.pydev.org/manual_101_run.html).