Thank you for your post and for the bug report.
At the beginning, the IDE gets all the tests from a current project using the code completion functionality: when you create a project, TWS parse all files and gather the necessary information. In a frame of this, we get all the tests that are present in your project. For example, when you open the Run Tests wizard and navigate to an 'Information' icon, you will see if a list of tests is retrieved from a server or locally.
So looks like that you can see all your tests when the IDE uses local data for retrieving tests.
When you click the 'Refresh' button, the IDE sends a request to your Salesforce organization and get a list of tests from the organization. There could be a case when org doesn't provide the IDE with all the tests. To check this, please follow the next steps:
- please execute the following query in the Developer Console on your organization (please also check the “Use Tooling API” there):
select Id, Name, NamespacePrefix, SymbolTable from ApexClass;
- check if you can see the SymbolTable data for classes that are not available in the list during the deployment;
- if there’s no information for them – you can try executing the “Compile All Classes” action in the org (Setup -> Apex Classes), so Salesforce will refresh the data.
After this, please check if the issue would be reproduced in TWS.
Also, we are aware of the issue when TWS doesn't get all the tests from an org if there are more then 2 thousand tests.
We are going to solve this issue in one of the nearest versions of the IDE.
For both cases, as an additional workaround instead of recreating a project, you can delete a ' TestCache.xml' file in a project folder. In this case, the IDE will parse files again and you will see a list of tests that are present locally.
Hope this would help.