- You will not be able to deploy your Apex class with the 101 Apex
test failures.
- The reason for the failure could have been introduced in the time
since that deployment.
- The managed package test failures will not hamper your deployments.
The first thing I would check is what are the error messages that you are getting for your failures? My guess is some of the test failures are caused by the same issue. It is possible that all 101 failures are for the exact same issue.
Many times, these failures could not be code related at all, it could be a configuration change introduced in the destination org. Configuration changes such as these could cause test failures
Validation Rules - Lets say you have test code that updates a field on a record that passes in production. Once it's already in production if I create a validation rule that says I cannot update that field if another field is blank, since my code updates that record with that other field being blank, my tests that previously passed, will now fail
Making a field required on an object - Lets say you have test code that inserts a record that passes in production. Once it's already in production, I change a field on that object to make it required. If I have test code where I do not set a value for that field before inserting, my tests that previously passed, will now fail.
Lookup field filters - Lets say you have test code that or inserts a record and that record has a required lookup field on it that passes in production. Once it's already in production, I add a filter to that lookup field only allowing certain related records. If my test code relates a record that does not meet that criteria, my tests that previously passed, will now fail.
Its important to note that I'm not saying your issue is definitely one of these, but these are some common scenarios where an admin unknowingly introduces a configuration change that can cause a lot of test failures.
EDIT
Based on your edit and the screenshot it looks like the error is based on having a non selective query against a large set of records. An explanation of why this passed before and fails now could be that your org just recently crossed the threshold of 100,000 records that meet your criteria.
@crop1645 brings up a good point as well, you are likely using seealldata=true, that is another way to solve this issue, but it may cause others as if you remove that then you will need to ensure you are creating all your test data. It is worth noting that seealldata=true is not best practice and it is recommended that you do create all your own test data.
Form the docs
More Efficient SOQL Queries
For best performance, SOQL queries must be selective, particularly for
queries inside of triggers. To avoid long execution times, the system
can terminate nonselective SOQL queries. Developers receive an error
message when a non-selective query in a trigger executes against an
object that contains more than 100,000 records. To avoid this error,
ensure that the query is selective.
Selective SOQL Query Criteria
A query is selective when one of the query filters is on an indexed
field and the query filter reduces the resulting number of rows below
a system-defined threshold. The performance of the SOQL query improves
when two or more filters used in the WHERE clause meet the mentioned
conditions. The selectivity threshold is 10% of the first million
records and less than 5% of the records after the first million
records, up to a maximum of 333,333 records. In some circumstances,
for example with a query filter that is an indexed standard field, the
threshold can be higher. Also, the selectivity threshold is subject to
change.