jnhyperion / hyperrobotframeworkplugin Goto Github PK
View Code? Open in Web Editor NEWRobot Framework plugin for PyCharm.
Robot Framework plugin for PyCharm.
I just installed the plugin to Pycharm version 2022.2.3 (Community Edition). Upon opening Pycharm, the plugin errors with the following stacktrace:
com.intellij.ide.plugins.StartupAbortedException: Fatal error initializing 'com.intellij.psi.stubs.StubUpdatingIndex'
at com.intellij.serviceContainer.ComponentManagerImplKt.handleComponentError(ComponentManagerImpl.kt:1460)
at com.intellij.util.indexing.FileBasedIndexDataInitialization.lambda$initAssociatedDataForExtensions$0(FileBasedIndexDataInitialization.java:93)
at com.intellij.util.indexing.IndexDataInitializer.executeTask(IndexDataInitializer.kt:80)
at com.intellij.util.indexing.IndexDataInitializer.access$executeTask(IndexDataInitializer.kt:15)
at com.intellij.util.indexing.IndexDataInitializer$runParallelTasks$1$1.run(IndexDataInitializer.kt:52)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: com.intellij.diagnostic.PluginException: Cannot create class com.github.jnhyperion.hyperrobotframeworkplugin.psi.RobotParserDefinition (classloader=PluginClassLoader(plugin=PluginDescriptor(name=Hyper RobotFramework Support, id=com.github.jnhyperion.hyperrobotframeworkplugin, descriptorPath=plugin.xml, path=~/Library/Application Support/JetBrains/PyCharmCE2022.2/plugins/Hyper RobotFramework Support, version=0.1.0, package=null, isBundled=false), packagePrefix=null, instanceId=59, state=active))
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:883)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:900)
at com.intellij.serviceContainer.LazyExtensionInstance.createInstance(LazyExtensionInstance.java:55)
at com.intellij.serviceContainer.LazyExtensionInstance.getInstance(LazyExtensionInstance.java:44)
at com.intellij.serviceContainer.BaseKeyedLazyInstance.getInstance(BaseKeyedLazyInstance.java:38)
at com.intellij.psi.stubs.StubUpdatingIndex.getExtensions(StubUpdatingIndex.java:406)
at com.intellij.psi.stubs.StubUpdatingIndex.instantiateElementTypesFromFields(StubUpdatingIndex.java:399)
at com.intellij.psi.stubs.StubUpdatingIndex.lambda$ensureSerializationManagerInitialized$0(StubUpdatingIndex.java:389)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:223)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:238)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:222)
at com.intellij.psi.stubs.StubUpdatingIndex.ensureSerializationManagerInitialized(StubUpdatingIndex.java:388)
at com.intellij.psi.stubs.StubUpdatingIndex.getValueExternalizer(StubUpdatingIndex.java:301)
at com.intellij.util.indexing.impl.storage.DefaultIndexStorageLayout.createIndexStorage(DefaultIndexStorageLayout.kt:74)
at com.intellij.util.indexing.impl.storage.DefaultIndexStorageLayout$SingleEntryStorageLayout.openIndexStorage(DefaultIndexStorageLayout.kt:168)
at com.intellij.psi.stubs.StubUpdatingIndex$3.openIndexStorage(StubUpdatingIndex.java:348)
at com.intellij.util.indexing.impl.storage.TransientFileContentIndex$1.openIndexStorage(TransientFileContentIndex.java:43)
at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.lambda$new$0(VfsAwareMapReduceIndex.java:68)
at com.intellij.util.indexing.impl.MapReduceIndex.(MapReduceIndex.java:74)
at com.intellij.util.indexing.storage.MapReduceIndexBase.(MapReduceIndexBase.java:42)
at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.(VfsAwareMapReduceIndex.java:81)
at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.(VfsAwareMapReduceIndex.java:67)
at com.intellij.util.indexing.impl.storage.TransientFileContentIndex.(TransientFileContentIndex.java:39)
at com.intellij.psi.stubs.StubUpdatingIndexStorage.(StubUpdatingIndexStorage.java:34)
at com.intellij.psi.stubs.StubUpdatableIndexFactoryImpl.createIndex(StubUpdatableIndexFactoryImpl.java:20)
at com.intellij.psi.stubs.StubUpdatingIndex.createIndexImplementation(StubUpdatingIndex.java:340)
at com.intellij.util.indexing.FileBasedIndexImpl.createIndex(FileBasedIndexImpl.java:575)
at com.intellij.util.indexing.FileBasedIndexImpl.initIndexStorage(FileBasedIndexImpl.java:494)
at com.intellij.util.indexing.FileBasedIndexImpl.registerIndexer(FileBasedIndexImpl.java:453)
at com.intellij.util.indexing.FileBasedIndexDataInitialization.lambda$initAssociatedDataForExtensions$0(FileBasedIndexDataInitialization.java:84)
... 17 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.github.jnhyperion.hyperrobotframeworkplugin.psi.RobotParserDefinition
at java.base/jdk.internal.misc.Unsafe.allocateInstance(Native Method)
at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(DirectMethodHandle.java:520)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:844)
... 48 more
After installing this plugin and without having any other plugins, PyCharm became to freeze for a few minutes after jumping from another window back to PyCharm. After freeze, everything works fine until next freeze. Issue doesn't happen every time but often. There isn't any related log available, at least none of the PyCharm logs did grow after or during freeze situation.
My project is quite huge if that could somehow explain the situation. Without this plugin everything works fine.
Any ideas? Has anyone else reported this kind of behaviour?
=== About ===
Build version: PyCharm 2022.2.3 Build: #PC-222.4345.23 October 10, 2022
Theme: Darcula
JRE: 17.0.4.1+7-b469.62, JetBrains s.r.o.
JVM: 17.0.4.1+7-b469.62, OpenJDK 64-Bit Server VM, JetBrains s.r.o.
Operating System: Windows 10 10.0 (amd64)
idea.config.path=C:..\JetBrains\PyCharmCE2022.2
idea.system.path=C:..l\JetBrains\PyCharmCE2022.2
idea.plugins.path=C:..\JetBrains\PyCharmCE2022.2\plugins
idea.log.path=C:..\JetBrains\PyCharmCE2022.2\log
_JAVA_OPTIONS=-Xmx2G
=== System ===
Number of CPU: 4
Used memory: 397Mb
Free memory: 997Mb
Total memory: 1395Mb
Maximum available memory: 2048Mb
=== Plugins ===
Custom plugins: [Hyper RobotFramework Support (0.1.2)]
Disabled plugins:[]
Hi there,
In the latest release there was implementation "Always insert 4 whitespace when typing Tab". This can be controlled in PyCharm by setting that in the Code Style section in the settings. We use tab to have better alignment in the keywords when we are using instead of using spaces. Tab is automatically adjustable.
I would like to propose this to be available for adjustment as per user desire, by the Code Style in PyCharm or in the Robot Options section as a checkbox.
Additionally as a improvement I would suggest the functionality to Capitalize Keywords to be limited to Library keywords not the ones that are written by the user or to provide option to choose.
java.lang.Throwable: Cannot distinguish StubFileElementTypes. This might worsen the performance. Providing unique externalId or adding a distinctive debugName when instantiating StubFileElementTypes can help. Version: psi.file:0:FILE -> [com.intellij.psi.tree.IStubFileElementType{psi.file;FILE;Language: Robot}, com.intellij.psi.tree.IStubFileElementType{psi.file;FILE;Language: ANY}]
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:202)
at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.lambda$determinePreviousFileElementType$8(PerFileElementTypeStubModificationTracker.java:203)
at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.determinePreviousFileElementType(PerFileElementTypeStubModificationTracker.java:199)
at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.fastCheck(PerFileElementTypeStubModificationTracker.java:101)
at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.lambda$endUpdatesBatch$2(PerFileElementTypeStubModificationTracker.java:76)
at com.intellij.openapi.application.ReadAction.lambda$run$1(ReadAction.java:60)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:891)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:69)
at com.intellij.openapi.application.ReadAction.run(ReadAction.java:59)
at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.endUpdatesBatch(PerFileElementTypeStubModificationTracker.java:75)
at com.intellij.util.indexing.events.ChangedFilesCollector$4.endBatch(ChangedFilesCollector.java:246)
at com.intellij.util.indexing.events.ChangedFilesCollector$5.lambda$endBatch$2(ChangedFilesCollector.java:283)
at com.intellij.util.ConcurrencyUtil.withLock(ConcurrencyUtil.java:258)
at com.intellij.util.indexing.events.ChangedFilesCollector$5.endBatch(ChangedFilesCollector.java:282)
at com.intellij.util.indexing.events.VfsEventsMerger.processChanges(VfsEventsMerger.java:109)
at com.intellij.util.indexing.events.ChangedFilesCollector.processFilesInReadAction(ChangedFilesCollector.java:265)
at com.intellij.util.indexing.events.ChangedFilesCollector.processFilesToUpdateInReadAction(ChangedFilesCollector.java:224)
at com.intellij.util.indexing.events.ChangedFilesCollector.ensureUpToDate(ChangedFilesCollector.java:190)
at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:836)
at com.intellij.psi.stubs.StubIndexEx.getContainingIds(StubIndexEx.java:365)
at com.intellij.psi.stubs.StubIndexEx.processElements(StubIndexEx.java:166)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:102)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:90)
at com.jetbrains.python.psi.stubs.PyClassNameIndex.find(PyClassNameIndex.java:28)
at com.jetbrains.python.psi.stubs.PyClassNameIndex.find(PyClassNameIndex.java:35)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.ref.PythonResolver.d(Unknown Source)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.ref.PythonResolver.c(Unknown Source)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.HeadingImpl.f(Unknown Source)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.RobotFileImpl.a(Unknown Source)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.RobotFileImpl.a(Unknown Source)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.RobotFileImpl.a(Unknown Source)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.RobotFileImpl.a(Unknown Source)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.RobotFileImpl.a(Unknown Source)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.ref.ResolverUtils.a(Unknown Source)
at com.github.jnhyperion.hyperrobotframeworkplugin.psi.ref.RobotKeywordReference.resolve(Unknown Source)
at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:176)
at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:164)
at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:209)
at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:253)
at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:232)
at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:297)
at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147)
at com.intellij.model.psi.impl.TargetsKt.fromTargetEvaluator(targets.kt:175)
at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:136)
at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:42)
at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:24)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.getTargetSymbols(IdentifierHighlighterPass.java:194)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.highlightReferencesAndDeclarations(IdentifierHighlighterPass.java:186)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.doCollectInformation(IdentifierHighlighterPass.java:91)
at com.intellij.codeInsight.highlighting.BackgroundHighlighter.lambda$submitIdentifierHighlighterPass$5(BackgroundHighlighter.java:203)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:746)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:778)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:573)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$3(NonBlockingReadActionImpl.java:537)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1102)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:72)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:129)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:110)
at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$1(ProgressManager.java:70)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:70)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:107)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:72)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:537)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:444)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:833)
还是我之前提过一个被closed的issue相关联的问题,希望提供一个选项能解析txt格式的用例
转念一想,txt格式本身就是新版Robot所舍弃的格式,所以没有必要单独提供一个选项,我这边通过修改txt用正则关联格式,依然可以用代码提示和高亮
但是,却因此挖掘出一个需求,当前直接执行用例的方式是:
--test "XXX.XXX.." .
希望能提供一个全局选项,支持定义每次执行用例时,加入自定义robot参数(参数可以在Robot Option提供一个文本框,用户自己去填写,分成suite 、case两种不同的自定义参数添加)
比如说--loglevel debug 启用debug打印
这样我之前的需求,通过自定义参数,新增extension也能一起满足了~
Robot Framework has the feature to create keywords as decorators to functions.
https://robot-framework.readthedocs.io/en/latest/autodoc/robot.api.html#robot.api.deco.keyword
These keywords are not resolved by the Plugin.
Great plugin! Thank you for your work! Best one for PyCharm, I've tried them all.
当前已经有keyword not defined的检测,今天同事提交的代码里面,引用两个libraray,发现有同名的,但是目前hyperrobot framework识别不出来,RF执行会报错存在多个相同的keyword,希望能增加多Library引入下,同名函数关键字检测
Warn: Unused import statement
New RETURN statement adds a uniform way to return from user keywords. It can be used for returning values when the keyword has been executed like when using the old [Return] setting, and also for returning prematurely like the old Return From Keyword keyword supports.
The old [Return] setting and old keywords Return From Keyword and Return From Keyword If continue to work. The plan is to deprecate and remove them in the future.
See : https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-5.0rc2.rst#return
I try to use the plugin with a dynamic library, but the keywords are not recognized.
Adding support for dynamic libraries to the plugin would be really great!
Using PyCharm 2022.2.3 (Build #PC-222.4345.23) or IntelliJ IDEA 2022.2.3 (Build #IU-222.4345.14)
navigating to referenced files doesn't seem to work properly.
We are importing Resources like the example below, which doesn't work.
*** Settings ***
Resource ../../APIResources/RESTResourceCollector.resource
But if we remove the path prefixes and only reference the file, the navigation works (but our tests will fail because the location is not correct)
Resource RESTResourceCollector.resource
Is this a bug or am I doing something wrong in my project setup ?
I noticed that keyword's navigation is not usable with a ctrl + mouse click when the previous keyword end with the "END" keyword. The example below is on the screen.
The code is working, but the syntax is broken, and the keyword is not well formatted in orange color. The first letter is white, the next are yellow.
If i have a library called RobotLibIsBest and i init it as follows:
*** Settings ***
Library RobotLibIsBest
Then the keywords autocomplete in intellij with pycharm plugin with out any problems. However if init takes on the WITH NAME form then autocomplete does not work. Also not it is possible to init with params.
*** Settings ***
Library RobotLibIsBest WITH NAME mylib
then
in the *.robot file if i type
*** Test Cases ***
mylib.(tab) ----> nothing happens however it is still recognizing keywords with out mylib. prefix. This causes an issue if i initialize two lib instances with different arguments and then i have no way to actually call either instance.
Pressing Tab results in a strict tab length no matter what. Other plugins allow dynamic tab length to help align keywords
Ex.
Keyword One ArgumentOne
Keyword Two ArgumentOne
Keyword Three ArgumentOne
Keyword Four ArgumentOne
Because the keywords are different lengths, pressing tab results in misaligned arguments. When pressing tab a second time
Keyword One ArgumentOne
Keyword Two ArgumentOne
Keyword Three ArgumentOne
Keyword Four ArgumentOne
The same number of spaces are used for the tab. It would be better if the length of the tab was changed dynamically to align the arguments such that the second tab would result in this
Keyword One ArgumentOne
Keyword Two ArgumentOne
Keyword Three ArgumentOne
Keyword Four ArgumentOne
Robot Framework's latest default support for.txt packages is no longer available, but it is still possible to enable the txt suite support of previous versions through the --extension robot:txt format,
I noticed Hyper temporarily unable to support it (for TXT format binding for robot in pycharm file type, automatic completion works, Run Configuration not work unfortunately)
Suggest add the --extension parameter to the every new run configuration by default to enable support for the.txt suite of use cases (forward compatibility)
--extension robot:txt --test "package.childpackage.case.
the plugin provides a decent code collapse/expand capabilities on Sections & Tests but for not for multi line sections. Example:
*** Test Cases *** # Collapsible
My Fav Test # Collapsible
&{var} = Create Dictionary # ======> Not Collapsible
... A=1
... B=2
'# blah blah blah # ===========> Not Collapsible - comment block
'# 123
'# xyz
Hi,
I'm constantly getting this error in Goland (plugin version 0.1.5) on Mac:
java.lang.IllegalStateException: TextAttributeKey(name:'HEADING', fallbackAttributeKey:'DEFAULT_STRING') was already registered with the other fallback attribute key: DEFAULT_KEYWORD at com.intellij.openapi.editor.colors.TextAttributesKey.mergeKeys(TextAttributesKey.java:226) at com.intellij.openapi.editor.colors.TextAttributesKey.lambda$getOrCreate$4(TextAttributesKey.java:212) at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1940) at com.intellij.openapi.editor.colors.TextAttributesKey.getOrCreate(TextAttributesKey.java:212) at com.intellij.openapi.editor.colors.TextAttributesKey.createTextAttributesKey(TextAttributesKey.java:199) at com.github.jnhyperion.hyperrobotframeworkplugin.psi.RobotHighlighter.(Unknown Source) at com.github.jnhyperion.hyperrobotframeworkplugin.ide.config.RobotColorsPage.(Unknown Source) at java.base/jdk.internal.misc.Unsafe.allocateInstance(Native Method) at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(DirectMethodHandle.java:520) at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:950) at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.instantiateClass(XmlExtensionAdapter.kt:79) at com.intellij.openapi.extensions.impl.XmlExtensionAdapter$SimpleConstructorInjectionAdapter.instantiateClass(XmlExtensionAdapter.kt:90) at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.doCreateInstance(XmlExtensionAdapter.kt:50) at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.kt:31) at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapter(ExtensionPointImpl.java:473) at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapters(ExtensionPointImpl.java:421) at com.intellij.openapi.extensions.impl.ExtensionPointImpl.getExtensions(ExtensionPointImpl.java:264) at com.intellij.openapi.extensions.ExtensionPointName.getExtensions(ExtensionPointName.java:35) at com.intellij.openapi.options.colors.pages.ColorSettingsPagesImpl.getRegisteredPages(ColorSettingsPagesImpl.java:33) at com.intellij.application.options.colors.ColorAndFontOptions.initPluggedDescriptions(ColorAndFontOptions.java:537) at com.intellij.application.options.colors.ColorAndFontOptions.initScheme(ColorAndFontOptions.java:529) at com.intellij.application.options.colors.ColorAndFontOptions.initAll(ColorAndFontOptions.java:513) at com.intellij.application.options.colors.ColorAndFontOptions.buildConfigurables(ColorAndFontOptions.java:375) at com.intellij.openapi.options.SearchableConfigurable$Parent$Abstract.getConfigurables(SearchableConfigurable.java:75) at com.intellij.openapi.options.ex.ConfigurableWrapper$CompositeWrapper.getConfigurables(ConfigurableWrapper.java:287) at com.intellij.openapi.options.ex.EpBasedConfigurableGroupKt.collect(EpBasedConfigurableGroup.kt:149) at com.intellij.openapi.options.ex.EpBasedConfigurableGroupKt.collect(EpBasedConfigurableGroup.kt:158) at com.intellij.openapi.options.ex.EpBasedConfigurableGroupKt.access$collect(EpBasedConfigurableGroup.kt:1) at com.intellij.openapi.options.ex.EpBasedConfigurableGroup.(EpBasedConfigurableGroup.kt:111) at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:115) at com.intellij.ide.actions.ShowSettingsUtilImpl.getConfigurableGroups(ShowSettingsUtilImpl.java:53) at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:60) at com.intellij.ui.mac.MacOSApplicationProvider$Worker.initMacApplication$lambda$2$lambda$1(MacOSApplicationProvider.kt:71) at com.intellij.ui.mac.MacOSApplicationProvider$Worker.submit$lambda$6(MacOSApplicationProvider.kt:170) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209) at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21) at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:838) at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:454) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:74) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:114) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:36) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:756) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105) at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:838) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
If I have an imported resource file, I'm not getting code completion hints when using the resource.keyword notation, e.g.
*** Settings ***
Library Collections
Resource my_resource.resource
*** Keywords ***
my_resource.my_keyword
${myList} create list
Collections.log list ${myList}
In the above, I'm not getting code completion when entering my_resource, or when entering Collections into the pycharm IDE.
In my project, the plugin does not recognize the keywords listed within the Test Cases section. However, if I open a separate Robot Framework project the plugin works just fine. It seems to a project-specific problem and I can't seem to figure out why that is the case
PyCharm: 2023.3.5 Community Edition
Pyenv: 2.3.36
Python: 3.11.1
Poetry: 1.8.2
I use Poetry to manage and run the project's test cases.
In my project, we are doing iOS and Android tests, so we include resources depending on which platform's device we are testing. To do so, when using the Resource
to import a file, we use a platform
variable.
However, even if I fixed the platform's value in the variables section, the plugin cannot import the Keywords included in the resource. So the navigation when clicking on the keyword from my test case does not work (i.e. Go To > Declaration or Usage).
Like shown below, if I use ./Resources/Android/Login.robot
it works, but not with ./Resources/${platform}/Login.robot
*** Settings ***
Resource ./Resources/${platform}/Login.robot
#Resource ./Resources/Android/Login.robot
*** Variables ***
${platform} Android
I see this exception on IDE starting and later
com.intellij.diagnostic.PluginException: Short name 'RobotKeywordNotFound' is not unique class 'com.github.jnhyperion.hyperrobotframeworkplugin.ide.inspections.compilation.RobotKeywordNotFound' in PluginDescriptor(name=Hyper RobotFramework Support, id=com.github.jnhyperion.hyperrobotframeworkplugin, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\PyCharmCE2022.2\plugins\Hyper RobotFramework Support, version=0.0.8, package=null, isBundled=false) and class 'com.millennialmedia.intellibot.ide.inspections.compilation.RobotKeywordNotFound' in PluginDescriptor(name=IntelliBot #patched, id=com.millennialmedia.intellibot@lte2000, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\PyCharmCE2022.2\plugins\intellibot.jar, version=0.14.191.8026, package=null, isBundled=false) conflict at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.checkForDuplicateShortName(InspectionToolRegistrar.kt:178) at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.registerInspection(InspectionToolRegistrar.kt:137) at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.access$registerInspection(InspectionToolRegistrar.kt:1) at com.intellij.codeInspection.ex.InspectionToolRegistrar.registerInspections(InspectionToolRegistrar.kt:69) at com.intellij.codeInspection.ex.InspectionToolRegistrar.<init>(InspectionToolRegistrar.kt:51) at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:844) at com.intellij.serviceContainer.ComponentManagerImpl.createLightService(ComponentManagerImpl.kt:823) at com.intellij.serviceContainer.ComponentManagerImpl.access$createLightService(ComponentManagerImpl.kt:55) at com.intellij.serviceContainer.ComponentManagerImpl$getOrCreateLightService$$inlined$synchronized$lambda$1.run(ComponentManagerImpl.kt:673) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:223) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639) at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:238) at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:222) at com.intellij.serviceContainer.ComponentManagerImpl.getOrCreateLightService(ComponentManagerImpl.kt:672) at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:621) at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:583) at com.intellij.openapi.client.ClientAwareComponentManager.getFromSelfOrCurrentSession(ClientAwareComponentManager.kt:37) at com.intellij.openapi.client.ClientAwareComponentManager.getService(ClientAwareComponentManager.kt:22) at com.intellij.codeInspection.ex.InspectionToolRegistrar$Companion.getInstance(InspectionToolRegistrar.kt:209) at com.intellij.profile.codeInspection.ProjectInspectionProfileManager.getCurrentProfile(ProjectInspectionProfileManager.kt:236) at com.intellij.configurationScript.inspection.ExternallyConfigurableProjectInspectionProfileManager.getCurrentProfile(ExternallyConfigurableProjectInspectionProfileManager.kt:75) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.<init>(LocalInspectionsPass.java:84) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPassFactory$MyLocalInspectionsPass.<init>(LocalInspectionsPassFactory.java:54) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPassFactory.createHighlightingPass(LocalInspectionsPassFactory.java:36) at com.intellij.codeInsight.daemon.impl.TextEditorHighlightingPassRegistrarImpl.instantiatePasses(TextEditorHighlightingPassRegistrarImpl.java:190) at com.intellij.codeInsight.daemon.impl.TextEditorBackgroundHighlighter.getPasses(TextEditorBackgroundHighlighter.java:75) at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl.lambda$submitInBackground$18(DaemonCodeAnalyzerImpl.java:1021) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:941) at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:68) at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl.lambda$submitInBackground$19(DaemonCodeAnalyzerImpl.java:1012) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl.submitInBackground(DaemonCodeAnalyzerImpl.java:1004) at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl.lambda$queuePassesCreation$14(DaemonCodeAnalyzerImpl.java:952) at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:184) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Hello,
After the Fix for Relative Path on Windows Machines #20 some Libraries that are used Imports Different then before.
For Example:
For Both Libs the Import different.
DateTime is a Standard Lib and before Ver. 0.1.2 it is Possible to use the Keywords from suggestion, when i import it under Settings as
*** Settings ***
Library robot.libraries.DateTime
The Browser Lib, an external Library, I can use
*** Settings ***
Library Browser
And i can use the suggested Keywords.
After Vers. 0.1.2
DateTime Lib can now be imported normal
*** Settings ***
Library DateTime
but for the Browser Lib I can't find another way to Import it, that I can use suggested Keywords.
Maybe it is a new Bug, that comes from the Change for the Fix of #20
When the last keyword word is a variable, navigation to the keyword's definition (ctrl + mouse click) doesn't work.
Example (doesn't work):
Calibration step for ${color}
But when I add some word at the end it works
Example (does work)
Calibration step for ${color} foo
This also works even when the keyword definition is "Calibration step for ${color}" (without foo at the end). But somehow the 'foo' enables us to navigate to this keyword. But when I place the mouse on the text before the ${color}
variable navigation still doesn't work, even with 'foo' at the end.
It looks like if there is no variable at the end navigation works fine. Still, with the variable at the end, navigation doesn't see this variable as part of the keyword, and navigation is broken.
But when a variable is in the middle of a keyword it again sees a keyword as correct (in the form of navigation)
There is a library that allows to bigger extension to be split into smaller pieces:
https://github.com/robotframework/PythonLibCore
It looks like this plugin doesn't understand sub-libraries, so it shows keywords from them as errors.
The var syntax added in Robot Framework 7 would be a great addition to the plugin.
Currently, attempting to use that syntax reports keyword definition not found... would be really nice to see this supported.
Hey, @jnhyperion will you continue to develop this plugin?
Variables that are defined in a class aren't recognized or autofilled when writing test cases in robot. I created multiple files with various classes to organize my locator variables but they are all unrecognized in robot files. Everything runs fine and tests pass, its just much harder to write and figure if a variable actually does not exist.
Test.robot:
Testing
[Documentation] Testing Stuff
Open Test Application
Tap Element ${WelcomeScreen.iAgree_button}
Tap Element ${LetsGetStartedScreen.setupNow_button}
Locators.py:
class WelcomeScreen:
EULAPrivacy_link = "//android.view.ViewGroup/android.widget.TextView[2]"
iAgree_button = "IAgreeButton"
debugSettings_button = "//android.view.ViewGroup/android.view.ViewGroup/android.widget.ImageButton"
class LetsGetStartedScreen:
setupNow_button = "SetupButton"
tutorial_button = "TutorialButton"
In this case ${WelcomeScreen.iAgree_button}
and ${LetsGetStartedScreen.setupNow_button}
won't autofill and display an unknown variable in the editor.
Hi, I new a robot file and add the Selenium2Library Library, but it shows 'keyword definition not found' when I move the mouse over "Click Element" , one of the keyword of Library Selenium2Library.
eg:
*** Settings ***
Library Selenium2Library
*** Keywords ***
eg1
Click Element some_element
Hi, I installed from PyCharm market, but it seems the plugin is not working, there is no syntax hight and so on.
PyCharm version: PyCharm 2022.1.2 (Community Edition)
System: macOS Catalina
Python: 3.7.1
Robot: 4.0
Hi,
After upgrading to version 0.0.6 keyword navigation doesn't work. Before I was able to click keyword with CTRL and navigate to its implementation - now it doesn't work. I have information "No usages in All Places". With version 0.0.5 it works fine.
My environment:
Windows 10
Python 3.10.2
PyCharm 2021.3.3 Community Edition (I can't update because I have some other plugin that won't work with the newest version (Robot Framework Support))
Hi,
When referencing a resource/variable/library, if i use an absolute/relative path (for example
Library ../../global_variables/simuInfos.py
Navigation is working well (we can navigate to file, also keywords from this file are known) and it is ok at runtime.
If i'm using an environment variable (set at computer or at pycharm level), the IDE does not recognize it (variable not found) so there is no navigation to file/keywords.
However, it is still working at runtime.
(issue similar to this in other robot framework : https://forum.robotframework.org/t/keywords-not-recognized/5041/6 )
robocorp/robotframework-lsp#548
Thanks
This is currently not supported, although it's completely legal (and useful) in Robot Framework:
*** Settings ***
Library MyLibrary.MyModule AS MyModule
The complete example you can install and easily reproduce can be found here:
https://github.com/myjniak/hyper-robot-issue
Images and gifs in README.md can also help explaining my issue :)
*** Settings ***
Library JSONLibrary
There is the problem when I type the "JSONLibrary", Although I hava installed the library.
Hello everyone, I am unable to use the plugin after updating/upgrading Pycharm i get this log:
com.intellij.ide.plugins.StartupAbortedException: Fatal error initializing 'com.intellij.psi.stubs.StubUpdatingIndex' at com.intellij.serviceContainer.ComponentManagerImplKt.handleComponentError(ComponentManagerImpl.kt:1460) at com.intellij.util.indexing.FileBasedIndexDataInitialization.lambda$initAssociatedDataForExtensions$0(FileBasedIndexDataInitialization.java:93) at com.intellij.util.indexing.IndexDataInitializer.executeTask(IndexDataInitializer.kt:80) at com.intellij.util.indexing.IndexDataInitializer.access$executeTask(IndexDataInitializer.kt:15) at com.intellij.util.indexing.IndexDataInitializer$runParallelTasks$1$1.run(IndexDataInitializer.kt:52) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241) at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31) at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214) at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212) at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: com.intellij.diagnostic.PluginException: Cannot create class com.github.jnhyperion.hyperrobotframeworkplugin.psi.RobotParserDefinition (classloader=PluginClassLoader(plugin=PluginDescriptor(name=Hyper RobotFramework Support, id=com.github.jnhyperion.hyperrobotframeworkplugin, descriptorPath=plugin.xml, path=~/Library/Application Support/JetBrains/PyCharmCE2022.2/plugins/Hyper RobotFramework Support, version=0.0.5, package=null, isBundled=false), packagePrefix=null, instanceId=68, state=active)) at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:883) at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:900) at com.intellij.serviceContainer.LazyExtensionInstance.createInstance(LazyExtensionInstance.java:55) at com.intellij.serviceContainer.LazyExtensionInstance.getInstance(LazyExtensionInstance.java:44) at com.intellij.serviceContainer.BaseKeyedLazyInstance.getInstance(BaseKeyedLazyInstance.java:38) at com.intellij.psi.stubs.StubUpdatingIndex.getExtensions(StubUpdatingIndex.java:406) at com.intellij.psi.stubs.StubUpdatingIndex.instantiateElementTypesFromFields(StubUpdatingIndex.java:399) at com.intellij.psi.stubs.StubUpdatingIndex.lambda$ensureSerializationManagerInitialized$0(StubUpdatingIndex.java:389) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:223) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639) at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:238) at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:222) at com.intellij.psi.stubs.StubUpdatingIndex.ensureSerializationManagerInitialized(StubUpdatingIndex.java:388) at com.intellij.psi.stubs.StubUpdatingIndex.getValueExternalizer(StubUpdatingIndex.java:301) at com.intellij.util.indexing.impl.storage.DefaultIndexStorageLayout.createIndexStorage(DefaultIndexStorageLayout.kt:74) at com.intellij.util.indexing.impl.storage.DefaultIndexStorageLayout$SingleEntryStorageLayout.openIndexStorage(DefaultIndexStorageLayout.kt:168) at com.intellij.psi.stubs.StubUpdatingIndex$3.openIndexStorage(StubUpdatingIndex.java:348) at com.intellij.util.indexing.impl.storage.TransientFileContentIndex$1.openIndexStorage(TransientFileContentIndex.java:43) at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.lambda$new$0(VfsAwareMapReduceIndex.java:68) at com.intellij.util.indexing.impl.MapReduceIndex.<init>(MapReduceIndex.java:74) at com.intellij.util.indexing.storage.MapReduceIndexBase.<init>(MapReduceIndexBase.java:42) at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.<init>(VfsAwareMapReduceIndex.java:81) at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.<init>(VfsAwareMapReduceIndex.java:67) at com.intellij.util.indexing.impl.storage.TransientFileContentIndex.<init>(TransientFileContentIndex.java:39) at com.intellij.psi.stubs.StubUpdatingIndexStorage.<init>(StubUpdatingIndexStorage.java:34) at com.intellij.psi.stubs.StubUpdatableIndexFactoryImpl.createIndex(StubUpdatableIndexFactoryImpl.java:20) at com.intellij.psi.stubs.StubUpdatingIndex.createIndexImplementation(StubUpdatingIndex.java:340) at com.intellij.util.indexing.FileBasedIndexImpl.createIndex(FileBasedIndexImpl.java:575) at com.intellij.util.indexing.FileBasedIndexImpl.initIndexStorage(FileBasedIndexImpl.java:494) at com.intellij.util.indexing.FileBasedIndexImpl.registerIndexer(FileBasedIndexImpl.java:453) at com.intellij.util.indexing.FileBasedIndexDataInitialization.lambda$initAssociatedDataForExtensions$0(FileBasedIndexDataInitialization.java:84) ... 17 more Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.github.jnhyperion.hyperrobotframeworkplugin.psi.RobotParserDefinition at java.base/jdk.internal.misc.Unsafe.allocateInstance(Native Method) at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(DirectMethodHandle.java:520) at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:844) ... 48 more
my local environment:
MacOS Monterey 12.4
Pycharm 2022.2
Python 3.9.13
Hi,I run the test case in pycharm and the browser window will be closed when the case runs finished.
I have tried add options "add_experimental_option("detach", True)" when open the browser but it didn't work.
There is no setdown or close browser sentense in my case.
I want to know if you have the problem and glad to hear from you, thanks.
Hello,
I'm getting the below exception when the plugin is enabled since I upgraded my IDE to 2024.1.
It's messing up the unit test feature as a side effect.
RunContextAction#presentation@ProjectViewPopup (com.intellij.execution.actions.RunContextAction), actionId=RunClass, text='Run context configuration'
com.intellij.diagnostic.PluginException: Class com.jetbrains.python.run.PythonRunConfiguration must not be requested from main classloader of PythonCore plugin. Matches content module (packagePrefix=com.jetbrains.python., moduleName=intellij.python.community.impl). [Plugin: com.github.jnhyperion.hyperrobotframeworkplugin]
at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.kt:203)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:151)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.ClassLoader.defineClass2(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1108)
at com.intellij.util.lang.UrlClassLoader.consumeClassData(UrlClassLoader.java:291)
at com.intellij.util.lang.ZipResourceFile.findClass(ZipResourceFile.java:116)
at com.intellij.util.lang.JarLoader.findClass(JarLoader.java:58)
at com.intellij.util.lang.ClassPath.findClassInLoader(ClassPath.java:240)
at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:190)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.kt:326)
at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.kt:178)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:151)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at com.github.jnhyperion.hyperrobotframeworkplugin.ide.execution.RobotConfigurationFactory.createTemplateConfiguration(Unknown Source)
at com.intellij.execution.configurations.ConfigurationFactory.createTemplateConfiguration(ConfigurationFactory.java:67)
at com.intellij.execution.impl.RunManagerImpl.createTemplateSettings$intellij_platform_execution_impl(RunManagerImpl.kt:361)
at com.intellij.execution.impl.RunManagerImpl.getConfigurationTemplate(RunManagerImpl.kt:353)
at com.intellij.execution.impl.RunManagerImpl.createConfiguration(RunManagerImpl.kt:278)
at com.intellij.execution.actions.RunConfigurationProducer.cloneTemplateConfigurationStatic(RunConfigurationProducer.java:252)
at com.intellij.execution.actions.RunConfigurationProducer.cloneTemplateConfiguration(RunConfigurationProducer.java:243)
at com.intellij.execution.actions.RunConfigurationProducer.createConfigurationFromContext(RunConfigurationProducer.java:95)
at com.intellij.execution.actions.RunConfigurationProducer.findOrCreateConfigurationFromContext(RunConfigurationProducer.java:195)
at com.intellij.execution.actions.PreferredProducerFind.doGetConfigurationsFromContext(PreferredProducerFind.java:118)
at com.intellij.execution.actions.PreferredProducerFind.getConfigurationsFromContext(PreferredProducerFind.java:100)
at com.intellij.execution.actions.ConfigurationContext.getConfigurationsFromContext(ConfigurationContext.java:415)
at com.intellij.execution.actions.ConfigurationContext.findPreferredConfiguration(ConfigurationContext.java:299)
at com.intellij.execution.actions.ConfigurationContext.findExisting(ConfigurationContext.java:293)
at com.intellij.execution.actions.ConfigurationContext.lambda$getFromEvent$0(ConfigurationContext.java:75)
at com.intellij.openapi.actionSystem.impl.ActionUpdater$UpdateSessionImpl$sharedData$1$1.invoke(ActionUpdater.kt:659)
at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:108)
at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:16)
at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:95)
at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:94)
at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1$lambda$0(cancellableReadAction.kt:38)
at com.intellij.openapi.application.impl.RwLockHolder.tryRunReadAction(RwLockHolder.kt:310)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:958)
at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1(cancellableReadAction.kt:36)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:66)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:155)
at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke(cancellableReadAction.kt:34)
at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:320)
at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:309)
at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:31)
at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:94)
at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:78)
at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:65)
at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:16)
at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$3.invokeSuspend(InternalReadAction.kt:36)
at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$3.invoke(InternalReadAction.kt)
at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$3.invoke(InternalReadAction.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
at com.intellij.openapi.application.rw.InternalReadAction.runReadAction(InternalReadAction.kt:35)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport.executeReadAction(PlatformReadWriteActionSupport.kt:38)
at com.intellij.openapi.application.ReadWriteActionSupport.executeReadAction$default(ReadWriteActionSupport.kt:15)
at com.intellij.openapi.application.CoroutinesKt.constrainedReadActionUndispatched(coroutines.kt:82)
at com.intellij.openapi.application.CoroutinesKt.readActionUndispatched(coroutines.kt:69)
at com.intellij.openapi.actionSystem.impl.ActionUpdater$UpdateSessionImpl$sharedData$1.invokeSuspend(ActionUpdater.kt:862)
at com.intellij.openapi.actionSystem.impl.ActionUpdater$UpdateSessionImpl$sharedData$1.invoke(ActionUpdater.kt)
at com.intellij.openapi.actionSystem.impl.ActionUpdater$UpdateSessionImpl$sharedData$1.invoke(ActionUpdater.kt)
at com.intellij.openapi.actionSystem.impl.ActionUpdater$getSessionDataDeferred$2$1$invokeSuspend$$inlined$useWithScope$1.invokeSuspend(trace.kt:149)
at com.intellij.openapi.actionSystem.impl.ActionUpdater$getSessionDataDeferred$2$1$invokeSuspend$$inlined$useWithScope$1.invoke(trace.kt)
at com.intellij.openapi.actionSystem.impl.ActionUpdater$getSessionDataDeferred$2$1$invokeSuspend$$inlined$useWithScope$1.invoke(trace.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.intellij.openapi.actionSystem.impl.ActionUpdater$getSessionDataDeferred$2$1.invokeSuspend(ActionUpdater.kt:862)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
Hi,
My tests need to specify a lot of public run options, for example tests need to specify which environment will be used before running by adding a custom variable -v env:uat
. It can be specified in every test run configuration, but is there a way to specify these public options in a global place? So these options will be specified only once.
Thanks.
I ran PyCharm today and got this error, everything was working yesterday.
PyCharm version: PyCharm 2022.3.2 (Professional Edition) Build #PY-223.8617.48, built on January 24, 2023
com.intellij.diagnostic.PluginException: Inspection #RobotKeywordNotFound has no description [Plugin: com.github.jnhyperion.hyperrobotframeworkplugin]
at com.intellij.codeInspection.ui.InspectionNodeInfo.<init>(InspectionNodeInfo.java:71)
at com.intellij.codeInspection.ui.InspectionResultsView.createBaseRightComponentFor(InspectionResultsView.java:487)
at com.intellij.codeInspection.ui.InspectionResultsView.showInRightPanel(InspectionResultsView.java:410)
at com.intellij.codeInspection.ui.InspectionResultsView.syncRightPanel(InspectionResultsView.java:324)
at com.intellij.codeInspection.ui.InspectionTree$2.lambda$process$0(InspectionTree.java:125)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:756)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:838)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
After plugin update from 0.1.5 to 0.1.7 it doesn't recognize Resource imports.
Resource that contain keywords are imported correctly, only those with only Variables don't work.
Resource file only with vartiables example:
*** Variables ***
${top_menu_login_xpath} //div[@class="top-menu-wrapper"]//a[contains(@href,"login")]
I am aware this might be a little bit controversial, but... it works in another Robot plugin, so I'll give it a shot :D
*** Test Cases ***
Test1
Test1 Setup
Log To Console ${NICE}
*** Keywords ***
Test1 Setup
Set Test Variable ${NICE} very nice
Is this expected?
Suite and Global variables behave the same way.
Hi,
I have a suite folder that contains some robot test suite files in it, can you support run all the tests in the folder?
Is there a way to execute all tests in testsuite1.robot
and testsuite2.robot
as below?
testsuites(folder)
-- testsuite1.robot
-- testsuite2.robot
Thanks!
Hello.
PyCharm: 2023.1.1
HyperRobotFrameworkPlugin: 0.1.10
I get an Issue in my Environment only after Starting PyCharm and when I change a Line.
java.lang.Throwable: Cannot distinguish StubFileElementTypes. This might worsen the performance. Providing unique externalId or adding a distinctive debugName when instantiating StubFileElementTypes can help. Version: psi.file:0:FILE -> [com.intellij.psi.tree.IStubFileElementType{psi.file;FILE;Language: Robot}, com.intellij.psi.tree.IStubFileElementType{psi.file;FILE;Language: ANY}] at com.intellij.openapi.diagnostic.Logger.error(Logger.java:202) at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.lambda$determinePreviousFileElementType$8(PerFileElementTypeStubModificationTracker.java:203) at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916) at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.determinePreviousFileElementType(PerFileElementTypeStubModificationTracker.java:199) at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.fastCheck(PerFileElementTypeStubModificationTracker.java:101) at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.lambda$endUpdatesBatch$2(PerFileElementTypeStubModificationTracker.java:76) at com.intellij.openapi.application.ReadAction.lambda$run$1(ReadAction.java:60) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:891) at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:69) at com.intellij.openapi.application.ReadAction.run(ReadAction.java:59) at com.intellij.psi.stubs.PerFileElementTypeStubModificationTracker.endUpdatesBatch(PerFileElementTypeStubModificationTracker.java:75) at com.intellij.util.indexing.events.ChangedFilesCollector$4.endBatch(ChangedFilesCollector.java:246) at com.intellij.util.indexing.events.ChangedFilesCollector$5.lambda$endBatch$2(ChangedFilesCollector.java:283) at com.intellij.util.ConcurrencyUtil.withLock(ConcurrencyUtil.java:258) at com.intellij.util.indexing.events.ChangedFilesCollector$5.endBatch(ChangedFilesCollector.java:282) at com.intellij.util.indexing.events.VfsEventsMerger.processChanges(VfsEventsMerger.java:109) at com.intellij.util.indexing.events.ChangedFilesCollector.processFilesInReadAction(ChangedFilesCollector.java:265) at com.intellij.util.indexing.events.ChangedFilesCollector.processFilesToUpdateInReadAction(ChangedFilesCollector.java:224) at com.intellij.util.indexing.events.ChangedFilesCollector.ensureUpToDate(ChangedFilesCollector.java:190) at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:836) at com.intellij.psi.stubs.StubIndexEx.getContainingIds(StubIndexEx.java:365) at com.intellij.psi.stubs.StubIndexEx.processElements(StubIndexEx.java:166) at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:102) at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:90) at com.jetbrains.python.psi.stubs.PyClassNameIndex.find(PyClassNameIndex.java:28) at com.jetbrains.python.psi.stubs.PyClassNameIndex.find(PyClassNameIndex.java:35) at com.github.jnhyperion.hyperrobotframeworkplugin.psi.ref.PythonResolver.d(Unknown Source) at com.github.jnhyperion.hyperrobotframeworkplugin.psi.ref.PythonResolver.c(Unknown Source) at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.HeadingImpl.f(Unknown Source) at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.RobotFileImpl.a(Unknown Source) at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.RobotFileImpl.a(Unknown Source) at com.github.jnhyperion.hyperrobotframeworkplugin.psi.element.RobotFileImpl.a(Unknown Source) at com.github.jnhyperion.hyperrobotframeworkplugin.psi.ref.ResolverUtils.a(Unknown Source) at com.github.jnhyperion.hyperrobotframeworkplugin.psi.ref.RobotArgumentReference.resolve(Unknown Source) at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:176) at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:164) at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:209) at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:253) at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:232) at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:297) at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147) at com.intellij.model.psi.impl.TargetsKt.fromTargetEvaluator(targets.kt:175) at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:136) at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:42) at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:24) at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.getTargetSymbols(IdentifierHighlighterPass.java:202) at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.highlightReferencesAndDeclarations(IdentifierHighlighterPass.java:194) at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.doCollectInformation(IdentifierHighlighterPass.java:91) at com.intellij.codeInsight.highlighting.BackgroundHighlighter.lambda$submitIdentifierHighlighterPass$5(BackgroundHighlighter.java:203) at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:746) at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:778) at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:573) at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$3(NonBlockingReadActionImpl.java:537) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1102) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:72) at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:129) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:110) at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$1(ProgressManager.java:70) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173) at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:70) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:107) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:72) at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:537) at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:444) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699) at java.base/java.lang.Thread.run(Thread.java:833)
Hello,
I missed some updates for this Plugin for Pycharm and I tried the new Version 0.0.9 from 0.0.3.
I don't know if it is possible to set this anwhere in the Settings, but now the Imports for Library's or Resource's are a little off from the older version.
I have created some Userlibraries in my Project and to import those I have to use relative Path to the Resource
Resource ../Resource/Test.robot
Now with the Version 0.0.9, my Test can't find the Recourse anymore in my IDE. I can use
Resource Test.robot
, when it is a unique name, or
Resource Resource/Test.robot
When I execute the Test in my IDE it is working good, but when I want to execute it in a CLI it can't find the Recourse anymore because it wants the Relative Paths.
I hope it is an issue and not something I miss with my settings.
Best Regards and Thanks for this good Plugin :-)
Hello.
Currently BUT statement is not supported in Gherkin language.
My Setup:
I have the published plugin version 0.1.16 installed via the Pycharm Marketplace. I'm working on automation with RobotFramework using SeleniumLibrary. I'm on a Mac M1 with the latest updates. I have updated all of my interpreter packages, and have the latest brew upgrades. Pycharm is up to date. Chrome is up to date. No warnings or errors when executing the test.
My Issue:
Here's what I've tried:
Here are my repro steps:
Given I run a test (I click the 'Play' icon next to the test in the .robot file that contains the test)
And a test fails or passes
When I refresh the report.html browser tab that's already open
Then I still see an old report from 20240417
When I close and reopen the report.html
Then I still see the old report
My test runs with Chrome.
Supplemental Information from RF website:
Run tests and generate reports
To run your tests and generate reports, you can use the robot command with the --report and --log options. For example: robot --report report.html --log log.html tests This will create a report.html file that summarizes the test results and a log.html file that contains the detailed test execution information. You can also use the --output option to specify the name of the XML output file, which is needed for further processing.
Request:
Can you update the readMe to tell me how to ensure HyperRobotFrameworkPlugin generates a report for every run, or if there's a bug, would you be willing to fix it? The reporting capability is important to me. Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.