Contribute to TestCafe repo for features/fixes - testing

I want to take a stab at contributing code to TestCafe for bugs/issues.
Can anyone of the contributers help me with setting up my machine? How do you get started? (apart from forking the repo) Are there any tools/extension that specifically help you?

Node.js is a prerequisite and needs to be installed on your machine. You need to run npm install or yarn in the local copy of the repository after it is cloned. You can use gulp build to build the project without running tests. After the project is built, you can start TestCafe by executing node bin/testcafe.js <TestCafe args> in your terminal.
You can use any text editor of your choice. JetBrains Webstorm is an ultimate solution for a JS project like TestCafe, but it is paid and proprietary. Visual Studio Code is a good open-source and free alternative.
As for other questions, I suggest you refer to the Code Contribution section of our guide, which covers the majority of topics.

Related

How to debug visual studio code extension in intellij

I have a visual studio code extension, but usually I develop in java so I'm much more experienced in intellij IDEA than vs code. So my question is, is there a way to debug my vs code extension in intellij?
Intellij has plugins for compiling and run typescript programs, it also supports node development.
I think I should create an npm run configuration, where I put npm compile script from package.json to before launch section and then run another npm script that will launch the vs code with the compiled extension. But I don't actually know how this script should look like, or if there is a better way to go.
Try importing all the libraries first.
InelliJ has an excellent feature of running each and every method and class individually, use that feature,
To use that feature, there is a green triangle at the right side, click on that to debug

Integrate ESLint with MSBuild

I know VS2017 now natively supports ESLint which is working fine for me. I need to know if is it possible to integrate ESLint with MSBuild so that I can have the same linting experience not only on my development workstation but on TFS CI/CD system too? Looks like there are some supported integrations as mentioned here but nothing on MSBuild.
I need to know if is it possible to integrate ESLint with MSBuild so
that I can have the same linting experience not only on my development
workstation but on TFS CI/CD system too?
So far, MSBuild does not integrate ESLint.
Besides, l found no official MSBuild document about Integrating ESLint. Also, I did a small test for Build Tool for VS2017, l found that there is no such component called ESLint which proves that it is not supported by MSBuild.(l also did in Build Tool in VS2019 and it is the same as in Build Tool for VS2017)
In addition, although MSBuild does not support ESLint, I think your proposal is an interesting idea and you can suggest a feature to user voice(DC Forum).
After that, you can put the link here and we who interested in this will vote it so that it will call the attention of the Support Team.
Hope it could help you.

Typescript: Yarn Workspaces IDE Support (IntelliJ, VSCode ...)

Working on a larger typescript project we decided to move the code to a monorepo with yarn workspaces.
We use webpack to build and bundle and everything works well (especially the linking between local modules/packages).
Since yarn workspaces will store most of the node_modules in the mono repo's root folder, the IDE (IntelliJ as well as VSCode) have problems resolving the imports to any node_modules when coding inside a "inner" project (so called "package" of a monorepo).
The strange thing is that imports are not known but on the other hand most of the time you can navigate to the correct source / definition within the IDEs for the same import if you write it down manually.
We have tried to tell IntelliJ to look into another folder for node_modules, but still not satisfying.
Please share your experience with yarn workspaces / monorepo (e.g. lerna) and how you develop the code living in these monorepos.
Which IDE do you use?
Did you add any special configurations to the IDE and/or package.json, tsconfig.json?
https://github.com/Izhaki/mono.ts
It uses yarn workspaces and marry well with VSCode. I hope the README is clear enough.
Basically, use two (parallel) typescript configuration trees:
Pre-build - uses aliases (for VSCode, tests, webpack, etc).
Build - uses typescript 3 project references for publishing essentially.
IDEA doesn't provide any support for Yarn workspaces; if you miss it, please follow WEB-29250 and linked tickets for updates.
You can try adding path mappings to your tsconfig.json - see https://intellij-support.jetbrains.com/hc/en-us/community/posts/207656825/comments/115000529564
Upodate as of 2018.1.1 IntelliJ now supports yarn workspaces so if you use this there should not be a problem.
https://blog.jetbrains.com/webstorm/2018/04/webstorm-2018-1-1/
Please share your experience with yarn workspaces / monorepo (e.g. lerna) and how you develop the code living in these monorepos.
Which IDE do you use?
Since you are asking. I basically ran into the same issues as you did. One solution I was looking into was disable hoisting node modules as described here. Unfortunately it seems it is not yet in the stable release.
What I ended up was ditiching workspaces for now until they fix either the IDE or release the nohoist option. Instead I am using lerna for now. It is less convenient but it does not hoist so that both the build tools and the IDE are satisfied.
Oh, I am also using IntelliJ (ultimate)

Write an IDE on top of IntelliJ Platform

I want to write a custom IDE on top of IntelliJ Platform. Android Studio is an example. It was built based on IntelliJ Platform and was designed to support Android application development.
There are lots of git GUI out there. However, in Linux, I don't satisfy with any. That is my motivation to write a git IDE for Linux. IntelliJ IDEA already have a very good Git plugin. Using IntelliJ IDEA is a solution. But it is too heavy for opening entire project with different functionalities (Run, Debug, Refactor...) for just Git operations. Therefore, I want to make that plugin a complete IDE for only Git operation.
On IntelliJ Platform forum page, there are tutorials to write plugins. However, it doesn't have the guide for writing a complete IDE.
Are there any tutorials to help me get started?
IntelliJ platform is probably not the best choice for writing a general purpose RCP applications.
https://intellij-support.jetbrains.com/hc/en-us/community/posts/207769065-Developing-a-desktop-Business-Application-using-the-JetBrains-Platform
Git plugin has 65k lines of code, you are talking about gutting ~13M lines IDE (respectively 3M lines of pure Java source code).

nightly build and virtual machines

At my place we are writing server side applications (WCF services) and we are looking forward automate the installation and run it in our nightly build process...
Moreover, we are looking forward installing it again and again on different servers...
We are searching for:
what is the best tool for nightly build?
(we are currently using TeamCity, but it is only good for CI not for the Nighty Build requirements)
Is there anyone who build its solutions\projects and install them on Virtual-Machines?
(Can you attach\link some automated code for this installation?)
Thanks.
Have a look at FinalBuilder
TeamCity is a great tool. It supports scheduling a build like CC.NET for nightly builds. What kind of issues are you having with it?
Try NAnt for the build:
http://nant.sourceforge.net/
and CruiseControl.NET for the continuous integration:
http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET
both are open source :-D
TeamCity will cope with nightly builds just as well as CC.Net etc.
Your comment
As far as I see this TC good enough
for CI not for NihgtlyBuild. Because
we cannot configure to install
windows-services, install on remote
machines, of course we can use Msbuild
but it will be hard to write all of
this.
It isn't particularly difficult to do any of this (IMO of course) using Microsoft.SDC.Tasks